2017-09-04 50 views
1

我正在使用apply_async的並行GET功能,如Python Requests: Don't wait for request to finish中所述。我的問題是我需要爲每個GET請求提供頭文件,我無法弄清楚如何做到這一點。如何將Python請求標頭提供給apply_async?

我沿着這些路線嘗試:

items.append(pool.apply_async(requests.get, [url, "", {"header1":"value1", "header2":"value2"}])) 

並沒有成功的主題的許多變化。

我將不勝感激信息如何通過我的方式工作。

謝謝!

回答

1

根據the requests docs,您需要將headers關鍵字參數中的標頭傳遞給requests.get

the multiprocessing docs,該參數apply_async是:

apply_async(func, args=(), kwds={}, callback=None) 

而你的情況將轉化爲:

pool.apply_async(requests.get, 
       [url], 
       dict(headers={"header1":"value1", "header2":"value2"})) 
+0

謝謝!我試過{標題:{...但它不起作用。這個字典(headers = {... works – Squrppi

+0

呃,'dict(headers = {...})'產生與'{'headers':{...}}'相同的結果,所以我不是確定這是問題,但我很高興事情正在工作! – larsks