golang을 통해 JSON apis를 사용하려고하지만 응답을 다시 가져 오는 데 끔찍한 시간을 보냅니다. 내가 반환하는 샘플 JSON 엔드 포인트 http://jsonplaceholder.typicode.com/posts/1를 사용하고있어Golang API 인코딩 관련 문제
{
"userId": 1,
"id": 1,
"title": "sunt aut facere repellat provident occaecati excepturi optio reprehenderit",
"body": "quia et suscipit\nsuscipit recusandae consequuntur expedita et cum\nreprehenderit molestiae ut ut quas totam\nnostrum rerum est autem sunt rem eveniet architecto"
}
이 this Stack Overflow Answer에서 오는 내 코드입니다 :
package main
import (
"encoding/json"
"net/http"
"fmt"
)
type Post struct {
UserID string
ID string
Title string
Body string
}
func getJson(url string, target interface{}) error {
r, err := http.Get(url)
if err != nil {
return err
}
defer r.Body.Close()
fmt.Println(r)
return json.NewDecoder(r.Body).Decode(target)
}
func main() {
post := new(Post) // or &Foo{}
getJson("http://jsonplaceholder.typicode.com/posts/1", &post)
println(post.Body)
}
그리고 이것은 출력 :
go run main.go
&{200 OK 200 HTTP/1.1 1 1 map[Cf-Cache-Status:[HIT] Cf-Ray:[2bf857d2e55e0d91-SJC] Access-Control-Allow-Credentials:[true] Cache-Control:[public, max-age=14400] Expires:[Sat, 09 Jul 2016 06:28:31 GMT] X-Content-Type-Options:[nosniff] Server:[cloudflare-nginx] Date:[Sat, 09 Jul 2016 02:28:31 GMT] Connection:[keep-alive] X-Powered-By:[Express] Etag:[W/"124-yv65LoT2uMHrpn06wNpAcQ"] Content-Type:[application/json; charset=utf-8] Set-Cookie:[__cfduid=d0c4aacaa5db8dc73c59a530f3d7532af1468031311; expires=Sun, 09-Jul-17 02:28:31 GMT; path=/; domain=.typicode.com; HttpOnly] Pragma:[no-cache] Via:[1.1 vegur] Vary:[Accept-Encoding]] 0xc8200ee100 -1 [chunked] false map[] 0xc8200da000 <nil>}
내가 알고 엔드 포인트가 작동합니다. 이 문제가 인코딩 문제입니까? Mac OSX 10.11.15에 있습니다.
감사
감사를 받게됩니다. 슈퍼 유용한. 빠른 후속 질문 : 응답 본문의 내용을 인쇄하여 명령 줄에서 볼 수없는 이유는 무엇입니까? 암호화되어 있습니까? –
@TomTunguz 수정 된 답변, 다시 읽으십시오. –