잠시만 기다려 주세요

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

2020년 09월 27일
내 탓이오. 내 탓이오. 내 큰 탓이로소이다. - 성경책
 




    golang

golang - HTTP GET 호출, curl, 클라이언트
이 름 : 바다아이   |   조회수 : 2193         짧은 주소 : https://www.bada-ie.com/su/?471591838122
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
번 호 카테고리 제 목 이름 조회수
173 golang , String Formatting 바다아이 262
172 golang rand.Intn , random, , . 바다아이 266
171 golang golang ... 바다아이 1432
170 golang golang gopath, goroot .. 바다아이 1102
169 golang golang ... Force download file example 바다아이 1584
168 golang golang , , cpu, memory, disk 바다아이 2304
167 golang golang , ... GOOS, GOARCH 바다아이 1629
166 golang golang checkbox ... 바다아이 1859
165 golang golang , , http .... 바다아이 1798
164 golang golang nil , nil , nil ... 바다아이 1895
163 golang 2 golang, go , .... golang .... 바다아이 2696
162 golang golang postgresql, mysql, mariadb ... ` Grave () .. .. 바다아이 1975
161 golang golang postgresql mysql, mariadb scan , null .. 바다아이 2061
160 golang golang , iconv 바다아이 2211
159 golang golang quote escape, unquote 바다아이 2129
158 golang golang , http errorLog , , ... 바다아이 2233
157 golang golang interface , 바다아이 2165
156 golang golang struct .... 바다아이 2290
155 golang golang map map , 바다아이 2152
154 golang golang map .... .... 바다아이 2121
153 golang golang slice copy 바다아이 2079
152 golang golang goto 바다아이 2158
151 golang golang slice sort , int, string, float64 바다아이 2226
150 golang URL Parsing, url . parse 바다아이 2297
149 golang golang , interface{} ... 바다아이 2215
148 golang golang interface to string, , , map slice json 바다아이 2063
147 golang golang How to convert JSON string to map and slice, json 바다아이 2217
146 golang golang , file write, Writing Files 바다아이 2341
145 golang golang Insert Line or String to File, , , , , 바다아이 2094
144 golang golang replace 바다아이 2175
| |








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