![](/img/trans.png)
[英]POSTing JSON with GuzzleHttp\Client: returning 401 Unauthorized error
[英]401 Unauthorized with JSON
運行以下bash腳本時出現錯誤。
pi@raspberrypi:~/dev-domoticz/scripts $ ./dht_22.sh
21.2
48.2
HTTP/1.1 401 Unauthorized
Content-Length: 91
Content-Type: text/html
Set-Cookie: SID=none; HttpOnly; Expires=Thu, 01 Jan 1970 00:00:00 GMT
<html><head><title>Unauthorized</title></head><body><h1>
該腳本讀取DHT22芯片的溫度和濕度dht_22.sh,並使用json與Domoticz服務器通信。 這樣我就可以在Domoticz服務器上看到當前的溫度/濕度:
#!/bin/sh
# Domoticz server
SERVER="10.0.0.110:8080"
# DHT IDX
DHTIDX="4"
# DHTPIN
DHTPIN="4"
# TEMP FILE
TMPFILE="/var/tmp/temp.txt"
cpt=0
while [ $cpt -lt 6 ]
do
TEMP=""
sleep 5
sudo nice -20 /home/pi/dev-domoticz/scripts/Adafruit_Python_DHT/examples/AdafruitDHT.py 22 $DHTPIN > /var/tmp/temp.t$
#TEMP=$(cat /var/tmp/temp.txt | grep "Temp" | awk '{ print $3 }')
#TEMP=$(cat /var/tmp/temp.txt | grep "Temp")
TEMP=$(awk ' /Temp/ {print substr ($0,6,4)}' /var/tmp/temp.txt)
HUM=$(awk ' /Humidity/ {print substr ($0,22,4)}' /var/tmp/temp.txt)
echo $TEMP
echo $HUM
# Send data
curl -s -i -H "Accept: application/json" "http://10.0.0.110:8080/json.htm?type=command¶m=udevice&idx=$DHTIDX&nv$
TEMP=""
HUM=""
exit 0
cpt=$(($cpt+1))
done
exit 1
當我僅在瀏覽器中運行json行時,我還會收到401未經授權的錯誤。 我猜我必須輸入一些登錄信息,所以我也嘗試了以下方法:
http://10.0.0.110:8080/json.htm?username=test=&password=test=&type=command¶m=udevice&idx=4&nvalue=0&svalue=21;40;2
但是仍然是401錯誤。
有人可以幫我嗎?
好吧,花了我一些時間,但是現在可以了。 您的解決方案是正確的Viktor Khilin,但是我的Domoticz軟件給我帶來了一些問題。
解決方案是這樣的:
curl -s -i -H "Accept: application/json" "http://10.0.0.110:8080/json.htm?&username=test=&password=test=&type=command¶m=udevice&idx=$DHTIDX&nvalue=0&svalue=$TEMP;$HUM;2"
謝謝你的協助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.