net/http
を使用してWeb APIをリクエストし、サーバーがJSON応答を返しました。レスポンス本文を出力すると、raw ASCIIコンテンツとして表示されます。私はbufio.ScanRunes
を使って内容を解析しようとしましたが失敗しました。生のUnicodeエンコードされたコンテンツを読みやすくするにはどうすればよいですか?
また、シンプルなサーバーを作成してユニコード文字列を返してもうまくいきました。ここ
コアコードである:ここ
func (c ClientInfo) Request(method string, url string, form url.Values) string {
req, _ := http.NewRequest(method, url, strings.NewReader(c.Encode(form)))
req.Header = c.Header
req.AddCookie(&c.Cookie)
resp, err := http.DefaultClient.Do(req)
defer resp.Body.Close()
if err != nil {
fmt.Println(err)
}
scanner := bufio.NewScanner(resp.Body)
scanner.Split(bufio.ScanRunes)
var buf bytes.Buffer
for scanner.Scan() {
buf.WriteString(scanner.Text())
}
rv := buf.String()
fmt.Println(rv)
return rv
}
は出力例である:
{ "フォーラム":{ "ID": "3251718"、 "名前": "の\ u5408 "\ u9ad8 \ u7b49 \ u9662 \ u6821"、 "second_class": "\ u5b89 \ u5fbd \ u9662 \ u6821" "0"、 "user_level": "1"、 "level_id": "1"、 "level_name": "\ u7d20 \ u672a \ u8c0b \ u9762"、 "cur_score": "0"、 "levelup_score" : "5"、 "member_num": "80329"、 "is_exists": "1"、 "thread_num": "108762"、 "post_num": "3445881"、 "good_classify":[{"class_id" 、 "class_name": "\ u5168 \ u "class_id": "1"、 "class_name": "\ u516c \ u544a \ u7c7b"}、{"class_id": "2"、 "class_name": "\ u5427 \ u53cb \ u4e13 \ u533a" "class_id": "4"、 "class_name": "\ u6d3b \ u52a8 \ u4e13 \ u533a"}、{"class_id": "6"、 "class_name": "\ u793e \ u56e2 \ u73ed \ u7ea7" "class_id": "5"、 "class_name": "\ u8d44 \ u6e90 \ u5171 \ u4eab"}、{"class_id": "8"、 "class_name": "\ u6e29 \ u99a8 \ u751f \ u6d3b \ "class_id": "7"、 "class_name": "\ u54a8 \ u8be2 \ u65b0 \ u95fb \ u7c7b"}、 "class_id": "3"、 "class_name": "\ u98c \ u91c7 \ 「名前」:「yi \ u62b9 \ u660e \ u5a9a \ u7684 \ u5fe7 \ u4f24」}、
..「マネージャ」:「マネージャ」
ありがとうございました。 – earlzo