2017-07-18 82 views
1

發送python請求到需要認證的服務器以下載文件。我試圖發送一個cookie和一個包含請求的頭文件。發送此請求的格式是什麼?Python,發送帶有標題和cookie的請求

從Chrome開發者,我可以看到請求頭爲: enter image description here

蟒蛇要求:

Session = requests.Session() 
cookies = browser.get_cookies() 

response = Session.get(url) 

tt = "ASPSESSIONIDSGSRSATR" 
cookie = {tt:Session.cookies.get_dict().get(tt,""), 
      cookies[2].get("name",""):cookies[2].get("value",""), 
      cookies[0].get("name",""):cookies[0].get("value","")} 


header = {"Host":"ecsxxxxxxxxxxxxxxxxxxxxx", 
      "Connection": "keep-alive", 
      "Accept":"text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8", 
      "User-Agent":"Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.89 Safari/537.36", 
      "Referer":"https://ecsxxxxxxxxxxxxxxxxxxxxx", 
      "Accept-Encoding":"gzip, deflate, sdch", 
      "Accept-Language":"en-US,en;q=0.8,fr;q=0.6"} 

response = Session.get(url, cookies = cookie, headers = header) 
+0

你知道服務器使用的身份驗證類型? –

+0

不可以。我如何找到它? – Iorek

+0

這是一個Oracle EMC服務器,如果這有助於 – Iorek

回答

0

評論:......那怎麼接受的用戶名/ PWORD ?

Using the Python Kerberos Module

Kerberos的基礎

當建立在服務器上的Kerberos身份驗證,有兩種基本的操作模式。
從客戶端實現的角度來看,最簡單的方法就是使用Basic Auth將用戶名和密碼傳遞給服務器,服務器隨後使用Kerberos領域進行檢查。


評論:這是一個Kerberos服務器

有一個可選

requests Kerberos/GSSAPI authentication library

這個庫增加了可選的Kerberos/GSSAP我認證支持並支持相互認證。

基本GET用法:

import requests 
from requests_kerberos import HTTPKerberosAuth 
r = requests.get("http://example.org", auth=HTTPKerberosAuth()) 

SO:session auth in python

+0

今天早上我在玩圖書館,但是如何接受用戶名/ pword? – Iorek