2017-10-10 20 views
-3

私はGOでリクエストをしようとしていますが、私は常に「Connection reset by peer」エラーを受け取ります。次のコードは、私がリクエストをやっている方法を示しています。ピアによる接続リセット

req, err := http.NewRequest("GET", url, nil) 
if err != nil { 
    return nil, err 
} 
client := = &http.Client{} 
resp, err := client.Do(req) 

if err != nil { 
    return nil, err 
} 

defer resp.Body.Close() 
fmt.Println(resp.Body) 

を...と私が受け取る:

Get https://example.com: read tcp 1.2.3.4:1234->5.6.7.8:5678: read: connection reset by peer 

私はカールhttps://example.comを行うと、私は、サーバー形式の応答を受け取ります。 GOでリクエストを送信できないのはなぜですか?

+2

サーバーが接続を終了しています。エンドポイントを制御していますか?そこにログをチェックできますか? 'fmt.Println(resp.Body)'は何も役に立たないので、これは実際にあなたが使っている完全なコードですか? – JimB

+0

resp、err:= client.Do(req)からエラーを受け取ります。本体がnilであるため – Vivi

+0

私はリクエストを行うことができますが、問題はGoコード – Vivi

答えて

0

https://example.comのようなURLに対して使用すると、コードは機能します。正しいURLを渡してもよろしいですか?

package main 

import (
    "fmt" 
    "io/ioutil" 
    "net/http" 
) 

func main() { 
    url := "https://example.com" 
    req, err := http.NewRequest("GET", url, nil) 
    if err != nil { 
     fmt.Println(err) 
     return 
    } 

    client := &http.Client{} 
    resp, err := client.Do(req) 
    if err != nil { 
     fmt.Println(err) 
     return 
    } 

    fmt.Println("OK") 
    defer resp.Body.Close() 

    bytes, err := ioutil.ReadAll(resp.Body) 
    if err != nil { 
     fmt.Println(err) 
     return 
    } 

    str := string(bytes[:]) 
    fmt.Printf("%s", str) 
} 
関連する問題