我很努力地使用Python和請求來訪問流API。瞭解Python HTTP流式傳輸
API說:「我們已經啓用了一個流式端點來利用持久HTTP套接字連接請求報價和交易數據。來自API的流數據包括做一個Authenticated HTTP請求並讓HTTP套接字打開不斷接收數據。「
如何我一直在試圖訪問數據:
s = requests.Session()
def streaming(symbols):
url = 'https://stream.tradeking.com/v1/market/quotes.json'
payload = {'symbols': ','.join(symbols)}
return s.get(url, params=payload, stream=True)
r = streaming(['AAPL', 'GOOG'])
的請求文檔here顯示的利息兩件事情:使用使用的發電機/迭代器與分塊數據,在數據字段中傳遞。對於流數據,它建議使用如下代碼:
for line in r.iter_lines():
print(line)
既不似乎工作,雖然我不知道把發電機的功能是什麼,因爲例子是不清楚。使用r.iter_lines(),我得到的輸出:「b」{「status」:「connected」} {「status」:disconnected「}'」
我可以訪問標題,響應是HTTP 200 ,但無法獲得有效的數據,或找到有關如何在python中訪問流HTTP數據的明確示例。在Python中執行此操作。
標題:{'connection':'keep-alive','content-type':'application/json','x-powered-by':'Express','transfer-encoding ':'chunked'}
把你的網址放到我的瀏覽器中會返回一個「無效的授權標題」消息,你需要進行身份驗證嗎?和/或,你是否正確讀取JSON結果? – verbsintransit
@verbsintransit如果OP看到'200 OK'則顯然他已經認證完成 – woozyking
API確實需要授權,爲了簡單起見,我忽略了授權行,我會發布密鑰,但是它們與我的交易賬戶相關聯,對於非流式請求,我使用Request .json()。我可能也需要在這裏做 - 不知道。 –