我正在尝试在其中发布带有xml消息的json。但是它返回
无效的字符“ b”正在寻找价值的起点
我认为可能的原因是我试图封送非json格式的return正文。
func (s *BackendConfiguration) Do(req *http.Request, v interface{}) error { log.Printf("Requesting %v %v%v\n", req.Method, req.URL.Host, req.URL.Path) start := time.Now() res, err := s.HTTPClient.Do(req) if debug { log.Printf("Completed in %v\n", time.Since(start)) } if err != nil { log.Printf("Request to sakura failed: %v\n", err) return err } defer res.Body.Close() resBody, err := ioutil.ReadAll(res.Body) if err != nil { log.Printf("Cannot parse sakura response: %v\n", err) return err } if debug { log.Printf("sakura response: %q\n", resBody) } if v != nil { return json.Unmarshal(resBody, v) } return nil }
错误发生在这一行
return json.Unmarshal(resBody, v)
该错误表明服务器未返回有效的JSON响应。我建议添加以下代码来调试问题:
err := json.Unmarshal(resBody, v) if err != nil { log.Printf("error decoding sakura response: %v", err) if e, ok := err.(*json.SyntaxError); ok { log.Printf("syntax error at byte offset %d", e.Offset) } log.Printf("sakura response: %q", resBody) return err }