Lösung eine ungültige Speicheradresse oder null-Zeiger-Dereferenzierung
Schlug meinen Kopf auf diese. Ich kann nicht erhalten eine HTTP-Antwort zuordnen struct.
Ich habe meine Strukturen einrichten, etwa so:
type DataConnect struct {
Response *Response
}
type Response struct {
response []byte
errors []string
}
Dann ist die Funktion in Frage gelegt, wie dies (gekürzt für bessere Lesbarkeit):
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 }
Tun, die Ergebnisse in die folgende Fehlermeldung:
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
Nun, wenn ich eine änderung DataConnect.Response.response
zu geben interface{}
kann ich speichern erfolgreich, jedoch brauche ich es in []byte
als ich später tun werden, eine json-Format.Unmarshal auf den Inhalt.
Hat jemand eine Idee warum das nicht funktioniert?
InformationsquelleAutor Peter | 2013-09-11
Du musst angemeldet sein, um einen Kommentar abzugeben.
Vermute ich, dass entweder d ist null oder d....Antwort ist null in Zeile 160. Wenn das wahr ist, müssen Sie entscheiden, ob das angemessen ist, und den code ändern wenn es nicht ist.
InformationsquelleAutor alex
Ich vermute, @alex der richtige ist, den code ändern, um etwas, das aussieht nil (von Zeile 159):
InformationsquelleAutor miltonb