これに頭をぶつけます。構造体に割り当てる HTTP 応答を取得できません。
私は構造体を次のように設定しています:
type DataConnect struct {
Response *Response
}
type Response struct {
response []byte
errors []string
}
次に、問題の関数が次のようにレイアウトされます (読みやすいようにトリミングされています)。
137 func (d *DataConnect) send() bool {
...
154 out, err := ioutil.ReadAll(resp.Body)
155 if err != nil {
156 fmt.Println(err)
157 }
158
159 fmt.Printf("%s\n", out) // THIS WORKS
160 d.Response.response = out // THIS DOES NOT WORK
161 }
これを行うと、次のエラーが発生します。
panic: runtime error: invalid memory address or nil pointer dereference
[signal 0xb code=0x1 addr=0x0 pc=0x36532]
goroutine 1 [running]:
github.com/DataConnect.(*DataConnect).send(0xc2000af4a0, 0x232a00)
github.com/DataConnect/DataConnect.go:160 +0xc22
DataConnect.Response.response
タイプを変更するinterface{}
と、正常に保存できますが[]byte
、後でコンテンツに対して json.Unmarshal を実行するために必要です。
なぜこれが機能しないのか、誰にもわかりませんか?