我想從服務器讀取JSON編碼的字節,這將縮進,但不可預知的長度,並沒有明顯的終止字節。我想將整個整個服務器的響應讀入一個字節。服務器將關閉連接。是否可以使用net
來做到這一點?閱讀,直到服務器關閉連接
1
A
回答
4
爲補充@minikomi的答案,我想補充一點,如果你確信從服務器返回的字節是JSON編碼,有一個漂亮的包裝encoding/json
這一點。
http://golang.org/pkg/encoding/json/
如果您使用的解碼器直接從連接解碼,有時可能無法返回的錯誤。您可能想要使用fmt.Printf("%v\n", whateverDecodedFromTheConnection)
來查看解碼器在連接關閉時獲取的結構。
例如,在我的情況下,當解碼器encoding/gob
用於解碼從TCP連接成一個結構定義爲消息:
type MessageType struct {
Type uint8
}
當連接關閉時,返回decoder.Decode(&buffer)
{0}
。這可能不是常見的情況,但需要注意的地方。
2
請看看該文檔在http://golang.org/pkg/net/http/
一個HTTP Get會返回一個Response結構,這將有io.ReadCloser
類型的主體。您可以使用ioutil.ReadAll來讀取對字節數組的整個響應。
resp, err := http.Get("http://example.com/")
if err != nil {
// handle error
}
defer resp.Body.Close()
body, err := ioutil.ReadAll(resp.Body)
相關問題
- 1. 關閉連接服務器
- 2. 到服務器共享連接關閉
- 3. 在關閉連接之前關閉閱讀器
- 4. SMO服務器連接未關閉
- 5. 服務器關閉了連接
- 6. 服務器意外關閉連接
- 7. Rabbitmq服務器連接突然關閉
- 8. Node.js - 服務器關閉了連接?
- 9. 關閉Tomcat服務器部署連接
- 10. TCP服務器關閉連接
- 11. 服務器錯誤:服務器在讀取響應關閉了連接
- 12. TCP先讓服務器先關閉連接讓客戶端先關閉連接
- 13. 連接閱讀器
- 14. nodejs mysql錯誤:連接丟失服務器關閉了連接
- 15. Heroku和NodeJs - MySql連接丟失:服務器關閉連接
- 16. 閱讀器是否關閉
- 17. 關閉嵌套閱讀器
- 18. 數據閱讀器與連接必須關閉錯誤
- 19. 服務器關閉或崩潰時自動重新連接到服務器
- 20. WCF RESTful服務 - JSONP綁定(服務器關閉連接異常)
- 21. 閱讀器關閉時嘗試讀取無效 - 但不關閉閱讀器?
- 22. 通過Ruby連接到HSQL並關閉服務器
- 23. 不能關閉我的http連接從java到ASP.Net服務器
- 24. 連接到TFS服務器會關閉Git解決方案
- 25. 如何重新連接到服務器不應答關閉()
- 26. 當zendesk服務器關閉時連接到Zendesk API
- 27. aiohttp Websocket在連接到某些websocket服務器時不關閉
- 28. 收到FTP響應421。服務器關閉連接
- 29. 主服務器關閉時連接到備份sql server(.net)
- 30. 上游節點服務器關閉連接到nginx
這很好理解,但不幸的是我沒有使用'net/http'。 –