簡體   English   中英

Python requests.get() 得到錯誤無效消息

[英]Python requests.get() getting error invalid msg

我正在嘗試在 Python 中制作簡單的腳本,以請求 API GET 來自比特幣礦機的響應。 我需要請求某個 JSON 鍵和值 {"command":"summary"}。 我將從由此獲得的 JSON 有效載荷中提取數據,以監控 Zabbix 上的一些機器。

如果我像這樣使用 bash 發送請求:

# echo '{"cmd":"summary"}' | timeout 1.5 nc IPADDRESS PORT

我會得到我需要的數據,我什至可以使用 tr、sed 和 jq 用 bash 處理它...

但是,如果我使用 Python 腳本發送請求,我總是會收到“無效的消息”。 我寧願用 Python 來做,因為我正在學習,我可以想象我的錯誤非常愚蠢。 這是 python 代碼。

#!/usr/bin/python3
import sys
import logging
import requests
import json
server = 'http://10.136.132.140:4028'
payload = {
"command":"summary"
}

jsonpayload = json.dumps(payload)
print(payload)
print(jsonpayload)
response = requests.get(server,
jsonpayload
)
print(response.json())

無論我做什么,這都行不通。 我嘗試使用直接有效負載作為 requests.get 的參數來僅發送字符串。 沒有任何效果。 每次我得到相同的無效味精。 我試過直接輸入 response = requests.get('http://IPADDRESS:PORT', '{"command":"summary"}') ,單引號或雙引號的任何可能組合......沒有任何效果。

當我調用它時,我得到三個例外。 重要的追溯如下:

http.client.BadStatusLine: STATUS=E,When=1608811559,Code=14,Msg=invalid cmd,Description=whatsminer v1.1

urllib3.exceptions.ProtocolError: ('Connection aborted.', BadStatusLine('STATUS=E,When=1608811559,Code=14,Msg=invalid cmd,Description=whatsminer v1.1'))

raise ConnectionError(err, request=request) requests.exceptions.ConnectionError: ('Connection aborted.', BadStatusLine('STATUS=E,When=1608811559,Code=14,Msg=invalid cmd,Description=whatsminer v1.1') )

我在這里做錯了什么? 提前感謝您的幫助!

如果你想發送一個 json 有效載荷,試試這個:

server = '' # server url
payload = {
"command":"summary"
}
response = requests.get(server, json=payload)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM