亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python怎么實現Requests發送帶cookies的請求

發布時間:2021-02-16 15:56:48 來源:億速云 閱讀:339 作者:小新 欄目:開發技術

這篇文章給大家分享的是有關python怎么實現Requests發送帶cookies的請求的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

一、緣 起

最近學習接口自動化教程,提到Requests發送帶cookies請求的方法,隨之也將其用于手頭實際項目中,大致如下

二、背 景

實際需求是監控平臺側下發消息有無異常,如有異常便觸發報警推送郵件,項目中下發消息接口需要帶cookies

三、說 明

腳本的工程名為ynJxhdSendMsg,大致結構如下圖

python怎么實現Requests發送帶cookies的請求

  1. sendMsg.py為主程序,函數checkMsg為在已發消息列表中查找已下發消息,函數sendMsg為發消息并根據結果返回對應的標識

  2. sendAlertEmail.py為發送郵件程序,在sendMsg.py中根據不同標識調用sendAlertEmail.py下的send_alert_email函數發報警郵件

四、實 現

【重點】發請求之前先加載cookies,方法如下

~
......
~
# 加載cookies
# 第一步,引入RequestsCookieJar()
coo = requests.cookies.RequestsCookieJar()
# 第二步,設置cookies參數,coo.set('key', 'value')
coo.set('__utma', '82342229.1946326147.***.1545556722.1545556733.4')
coo.set('JSESSIONID', 'D898010550***ADB0600BF31FF')
# 第三步,引入seeeion(),并update
sess = requests.session()
sess.cookies.update(coo)
~
......
~

sendMsg.py

  1. 發送帶當前時間戳的特定消息,在發送成功后便于通過時間戳檢索

  2. 函數checkMsg為在已發消息列表中查找已下發消息

  3. 函數sendMsg為發消息并根據結果返回對應的標識

  4. 導入sendAlertEmail模塊的send_alert_email方法,在sendMsg.py中根據不同標識調用send_alert_email函數發報警郵件

#!/usr/bin/python
# coding=utf-8
# author: 葛木瓜
# 2018.12.20

import requests
import time
import re
import sys
sys.path.append('./')
from sendAlertEmail import send_alert_email

now = time.strftime('%Y.%m.%d %H:%M:%S') # 獲取當前時間
sendMsg_url = 'http://*.*.*.*/interactive/sendMessage.action'
msgList_url = 'http://*.*.*.*/interactive/sendedMessageList.action'
headers = {
  'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:56.0) Gecko/20100101 Firefox/56.0',
  'Content-Type': 'application/x-www-form-urlencoded'
  }
payload = {
  'showFlag': '0',
  'type': '1',
  'fsnl': 'on',
  'receiversId_': '63110542',
  'receiveName': '9705家長;',
  'content': 'Test msg sending,time ' + now,
  'templateType': '1',
  'addTeachername': '0',
  'isGreed': '0',
  'send': '1',
  'startDayTime': '2018-12-20',
  'hourss': '22',
  'munit': '29',
  'selectRole': '2',
  'receiversIds': '63110542',
  'templateFlag': '0'
}

# 加載cookies
coo = requests.cookies.RequestsCookieJar()
coo.set('__utma', '82342229.1946326147.***.1545556722.1545556733.4')
coo.set('JSESSIONID', 'D898010550***ADB0600BF31FF')
sess = requests.session()
sess.cookies.update(coo)


def checkMsg():
  """
  在已發送短信列表檢查已發送短信
  :return:
  """
  i = 1
  while True:
    try:
      cm_resp = sess.get(msgList_url, headers=headers, allow_redirects=False)
    except Exception as e:
      return str(e)
    else:
      time.sleep(1)
      cm_key = re.findall('Test msg sending,time33 ' + now, cm_resp.text)
      i += 1
      if i <= 30:
        if len(cm_key):
          break
      else:
        cm_key = ['More than 30 times,no result']
        break
  print('Request %d times' % i)
  return cm_key


def sendMsg():
  """
  send message
  :return:
  """
  try:
    resp = sess.post(sendMsg_url, headers=headers, data=payload, allow_redirects=False)
  except Exception as e:
    return str(e)
  else:
    if resp.status_code == 200:
      key = re.findall('通知發送已成功', resp.text)
      cm_key = checkMsg()
      # print(key, cm_key)
      if len(key) and len(cm_key):
        if cm_key[0] == 'Test msg sending,time ' + now:
          return 200
        elif cm_key[0] == 'More than 30 times,no result':
          return 'More than 30 times,no result'
        else:
          # print('Check Msg connect fail:' + str(cm_key))
          return 'Check Msg connect fail: ' + cm_key
    elif resp.status_code == 302:
      return 302
    else:
      return resp.status_code


if __name__ == '__main__':

  receiver = ['**@***.com'] # 收件人郵件列表
  status = sendMsg()
  print(status)
  if status == 200:
    alert_content = "normal"
    print('Test Success!')
  elif status == 'More than 30 times,no result':
    alert_content = "短信已發送,查詢已發狀態失敗!"
  elif 'Check Msg connect fail:' in str(status):
    alert_content = "短信已發送,無法查詢已發狀態,報錯信息:%s" % status.split(':')[-1]
  elif status == 302:
    alert_content = "Session失效,請重新獲取'JSESSIONID'!"
  else:
    alert_content = "短信下發失敗,報錯信息:%s" % status
  if alert_content != "normal":
    send_alert_email(receiver, alert_content)

sendAlertEmail.py,方法較常見,此處略

五、最 后

完成以上,將腳本放在jenkins上定時構建,即可實現實時監控平臺側消息下發情況并及時反饋報警郵件的需求

感謝各位的閱讀!關于“python怎么實現Requests發送帶cookies的請求”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

泸溪县| 塘沽区| 崇文区| 长武县| 鱼台县| 封开县| 罗城| 封丘县| 泾川县| 运城市| 岑溪市| 昭苏县| 如皋市| 高青县| 化州市| 温宿县| 东乡族自治县| 上杭县| 海安县| 甘南县| 右玉县| 枣强县| 元谋县| 蒙山县| 永定县| 迁安市| 九龙城区| 仁化县| 温州市| 策勒县| 汤阴县| 霸州市| 长沙市| 阿巴嘎旗| 桂平市| 盐城市| 佛冈县| 社会| 安阳市| 荔浦县| 江达县|