2016-07-18 4 views
0

golang에 웹 리소스 (GET)를 요청하기 위해 Gorilla Toolkit을 사용하고 있으며 응답 본문을 처리하려고하지만 액세스 방법을 모르겠습니다. 여기고릴라 툴킷 Client.get에서 응답 내용을 읽습니다.

package main 

import (
    "log" 

    "github.com/gorilla/http" 
) 

func main() { 
    url := "http://ubuntu.com" 

    status, h, r, err := http.DefaultClient.Get(url, nil) 
    if err != nil { 
     log.Fatal(err) 
    } 
    if r != nil { 
     defer r.Close() 
    } 
    log.Printf("Status: %v", status) 
    log.Printf("Headers: %v", h) 

    var p []byte 
    _, err = r.Read(p) 
    if err != nil { 
     log.Fatal(err) 
    } 
    log.Printf("MSG: %v", p) 
} 

고릴라 응답 객체 유형 io.ReadCloser이며 나는 그것을 액세스하는 방법 주위에 내 머리를 정리 할수 없어 내 main.go입니다. 어떤 도움을 주셔서 감사합니다.

답변

3

사용 ioutil.ReadAll는 [] 바이트로 전체 응답 본문을 읽을 수 있습니다 :

status, h, r, err := http.DefaultClient.Get(url, nil) 
if err != nil { 
    log.Fatal(err) 
} 
var p []byte 
if r != nil { 
    p, err = ioutil.ReadAll(r) 
    r.Close() 
    if err != nil { 
     log.Fatal(err) 
    } 
} 

내가 대신 고릴라 클라이언트의 net/http client를 사용하는 것이 좋습니다. net/http 클라이언트와 net/http 클라이언트를 더 잘 사용하는 방법에 대한 예제가 더 있습니다.