python使用requests通過代理地址傳送text/xml報文資料
阿新 • • 發佈:2021-01-08
def client_post_xmldata_proxy_requests(self,request_url,requestxmldata,headerdict={},**kwargs): #功能說明:通過代理地址傳送text/xml請求報文到指定的地址並獲取請求響應報文 #輸入引數說明:接收請求的URL,xml請求報文資料,待新增到請求頭中的欄位值組成的字典,預設為{},表示不新增欄位、http或者https請求代理地址組成的字典,格式例如為{'http': 'http://192.168.111.222:8888', 'https': 'http://192.168.333.444:8888'}。 #輸出引數:請求響應報文 #by xiaocc[20180709] #預設請求頭 head={"Content-Type":"text/xml; charset=UTF-8", 'Connection': 'close'} print u'請求頭待更新的資料:',headerdict,u'該資料型別為:',type(headerdict) #比對輸入的header與預設的head,根據輸入要求更新請求頭 if headerdict=='{}':#若未傳入更新的請求頭資料,則選擇預設請求頭 pass elif type(headerdict) in (dict,): #若傳入的更新的請求頭資料為字典格式,則更新到預設請求頭 for key in headerdict: #判斷待新增到預設head中的鍵值對 head[key]=headerdict[key] #根據輸入更新預設head資料 else: logging.error(u'請確保輸入的請求頭更新資料格式為字典格式!' ) raise Exception print '伺服器接收請求報文的地址為:',request_url print '客戶端請求xml報文資料為(客戶端 --> 伺服器):\n',requestxmldata proxyurl= kwargs['proxyurl'] print u'請求代理地址為:',proxyurl #傳送請求報文到商戶前置 r = requests.post(request_url,data=requestxmldata,headers=head,proxies=proxyurl,verify=False) print '請求頭headers為: ',r.request.headers #獲取請求響應報文資料 responsedata=r.text print "get the status: ",r.status_code print '伺服器響應報文為(客戶端 <-- 伺服器): ',responsedata #返回請求響應報文 return responsedata