0
POST請求我試圖使用自動化golang使得在golang
-
生成密碼(完成) -
推送通知到所有設備(完成使用pushbullet) - 變化以下無線路由器密碼在192.168.0.1(需要完成)
Wifi路由器頁面在192.168.0.1 Wifi Router page
這是使用Fiddler捕獲的原始數據。 (當手動更改)
POST http://192.168.0.1/goform/form2WlanBasicSetup.cgi HTTP/1.1
Host: 192.168.0.1
User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Referer: http://192.168.0.1/d_wlan_basic.asp
Cookie: curShow=
X-Skyzip-Mode: high
Connection: keep-alive
Content-Type: application/x-www-form-urlencoded
Content-Length: 233
domain=1&hiddenSSID=0&ssid=Home&band=9&chan=0&chanwid=1&txRate=0&method_cur=0&method=6&authType=2&length=1&format=1&defaultTxKeyId=1&key1=&pskFormat=0&pskValue=3ADI0NSXEAYOI0M&checkWPS2=1&save=Apply&basicrates=496&operrates=4080
和我golang代碼如下
func RouterPass(pass string) {
routerUrl := "http://192.168.0.1"
resource := "/goform/form2WlanBasicSetup.cgi"
data := url.Values{}
data.Set("domain", "1")
data.Add("ssid", "Home")
data.Add("band", "9")
data.Add("chan", "0")
data.Add("chanwid", "1")
data.Add("txRate", "0")
data.Add("method_cur", "0")
data.Add("method", "6")
data.Add("authType", "2")
data.Add("length", "1")
data.Add("format", "1")
data.Add("defaultTxKeyId", "1")
data.Add("pskFormat", "0")
data.Add("pskValue", pass)
data.Add("checkWPS2", "1")
data.Add("save", "Apply")
data.Add("basicrates", "496")
data.Add("operrates", "4080")
u, _ := url.ParseRequestURI(routerUrl)
u.Path = resource
u.RawQuery = data.Encode()
urlStr := fmt.Sprintf("%v", u)
client := &http.Client{}
r, _ := http.NewRequest("POST", urlStr, nil)
// r.Header.Add("Authorization", "auth_token=\"XXXXXXX\"")
r.Header.Add("Content-Type", "application/x-www-form-urlencoded")
r.Header.Add("Content-Length", strconv.Itoa(len(data.Encode())))
resp, _ := client.Do(r)
fmt.Println(pass)
fmt.Println(resp.Status)
}
但我無法更改密碼。 我在做什麼錯?
據我可以告訴有沒有叫你叫'fmt.Println(通)'的'時間在pass'範圍變量
代碼。不確定這一點,但我的猜測會是響應主體的一部分,爲了打印這些數據,您必須解壓縮它。例如,如果主體是json,使用'encoding/json'包反序列化成某個對象或映射,然後你可以執行'myType.Password',但是你不能僅僅通過魔術般地打印'pass'而不從響應。我猜想其他一切工作正常。它大部分看起來很標準。註釋掉該行並檢查您的狀態。產生 – evanmcdonnal
密碼並傳遞到RouterPass()之類'''FUNC主(){ \t VAR密碼= 「NRTW-16SM-QFF2-282L」 \t RouterPass(密碼) }''' –
爲什麼不再次與捕獲go程序客戶端,並將其與以前的捕獲進行比較。也是迴應。 –