잠시만 기다려 주세요


 
HOME   |  여기는?   |  바다물때표   |  여러가지 팁 (804)  |  추천 및 재미 (75)  |  자료실 (17)  |  끄적거림 (467)  |  시나리오 (760)  |  드라마 대본 (248)  |  

2019년 10월 15일
스스로를 컨트롤 하지 않으면 모든 것을 잃게 된다. - 바다아이
 




    golang

golang - HTTP GET 호출, curl, 클라이언트
이 름 : 바다아이   |   조회수 : 1280         짧은 주소 : https://www.bada-ie.com/su/?631523169144
1. HTTP GET 호출

Go의 표준 패키지인 http 패키지는 웹 관련 클라이언트 및 서버 기능을 제공한다. 
그 중 http.Get() 메서드는 쉽게 웹 페이지나 웹 데이타들 가져오는데 사용된다.

package main

import (
    "fmt"
    "io/ioutil"
    "net/http"
)

func main() {
    // GET 호출
    resp, err := http.Get("http://csharp.news")
    if err != nil {
        panic(err)
    }

    defer resp.Body.Close()

    // 결과 출력
    data, err := ioutil.ReadAll(resp.Body)
    if err != nil {
        panic(err)
    }
    fmt.Printf("%s\n", string(data))
}


2. HTTP GET 헤더 변경

http.Get()은 한 문장으로 HTTP GET을 호출하는 장점이 있지만, Request시 헤더를 추가한다던가, 
Request 스트림을 추가하는 것과 같은 세밀한 컨트롤을 할 수 없는 단점이 있다. 
Request시 보다 많은 컨트롤이 필요하다면, Request 객체를 (NewRequest 생성자를 통해) 
직접 생성해서 http.Client 객체를 통해 호출하면 된다.

아래 예제는 http.NewRequest() 생성자를 통해 Request 객체를 생성하고, 여기에 임의의 헤더를 추가하고, 
http.Client 객체를 통해 호출하는 코드이다. HTTP 호출결과는 Response 객체인데, 
이 객체의 Body 필드를 통해 실제 Request 결과를 가져올 수 있다.

package main

import (
    "fmt"
    "io/ioutil"
    "net/http"
)

func main() {
    // Request 객체 생성
    req, err := http.NewRequest("GET", "http://csharp.tips/feed/rss", nil)
    if err != nil {
        panic(err)
    }

    //필요시 헤더 추가 가능
    req.Header.Add("User-Agent", "Crawler")

    // Client객체에서 Request 실행
    client := &http.Client{}
    resp, err := client.Do(req)
    if err != nil {
        panic(err)
    }
    defer resp.Body.Close()

    // 결과 출력
    bytes, _ := ioutil.ReadAll(resp.Body)
    str := string(bytes) //바이트를 문자열로
    fmt.Println(str)
}


출처 : http://golang.site/go/article/102-HTTP-GET-%ED%98%B8%EC%B6%9C
| |


      1 page / 6 page
번 호 카테고리 제 목 이름 조회수
171 golang golang ... 바다아이 318
170 golang golang gopath, goroot .. 바다아이 316
169 golang golang ... Force download file example 바다아이 576
168 golang golang , , cpu, memory, disk 바다아이 928
167 golang golang , ... GOOS, GOARCH 바다아이 693
166 golang golang checkbox ... 바다아이 823
165 golang golang , , http .... 바다아이 866
164 golang golang nil , nil , nil ... 바다아이 906
163 golang 2 golang, go , .... golang .... 바다아이 1193
162 golang golang postgresql, mysql, mariadb ... ` Grave () .. .. 바다아이 981
161 golang golang postgresql mysql, mariadb scan , null .. 바다아이 1045
160 golang golang , iconv 바다아이 1109
159 golang golang quote escape, unquote 바다아이 1105
158 golang golang , http errorLog , , ... 바다아이 1189
157 golang golang interface , 바다아이 1139
156 golang golang struct .... 바다아이 1190
155 golang golang map map , 바다아이 1136
154 golang golang map .... .... 바다아이 1207
153 golang golang slice copy 바다아이 1082
152 golang golang goto 바다아이 1176
151 golang golang slice sort , int, string, float64 바다아이 1214
150 golang URL Parsing, url . parse 바다아이 1229
149 golang golang , interface{} ... 바다아이 1162
148 golang golang interface to string, , , map slice json 바다아이 1132
147 golang golang How to convert JSON string to map and slice, json 바다아이 1176
146 golang golang , file write, Writing Files 바다아이 1303
145 golang golang Insert Line or String to File, , , , , 바다아이 1091
144 golang golang replace 바다아이 1151
143 golang golang split explode , , ... 바다아이 1245
142 golang golang email read parse, , ..... .... 바다아이 1151
| |




Copyright ⓒ 2001.12. bada-ie.com. All rights reserved.
이 사이트는 리눅스에서 firefox 기준으로 작성되었습니다. 기타 브라우저에서는 다르게 보일 수 있습니다.
[ FreeBSD + GoLang + PostgreSQL ]
서버위치 : 서울 Amazon Lightsail  실행시간 : 0.02124
to webmaster... gogo sea. gogo sea.