HTTP 클라이언트를 Go로 쓸 때 URL을 조립하는 방법
5404 단어 Go
외부 API용 HTTP 클라이언트/HTTP 요청이 적혀 있으며 URL의 조립 방법에 세부 사항이 있습니다.
견본
https://www.instagram.com/natgeo/?__a=1
이렇게 사용자의 프로필 정보
json
가 회답하는 단점.# example
$ curl "https://www.instagram.com/natgeo/?__a=1" | jq .user.biography
"Experience the world through the eyes of National Geographic photographers."
(문서에 기록되지 않아 변경이 있을 수 있지만 인스타그램 앱 로그인도 필요 없어 알아두기 편해요!)URL 조립 방법
다음은 본론.
HTTP 클라이언트 쓰기
url := fmt.Sprintf("%s/%s", endpoint, username)
url := endpoint + "/" + username
이런 코드로 아래의 오류를 몇 번이나 눈치채지 못해 시간이 걸렸다.https://api.instagram.com/v1/username
누락/
변했다https://api.instagram.com/v1username
. 」 /
가 있습니다.https://www.instagram.com/
or https://www.instagram.com
」 표준 포장으로 간편하게
표준 포장을 통일하여 쓰다.
var endpoint = "https://www.instagram.com"
// endpoint のスキームでミスがあったら、ここでチェックできる。
u, err := url.Parse(endpoint)
if err != nil {
return err
}
// 複数のエンドポイントもこの書き方で統一して、 `/` の処理を任せる。
u.Path = path.Join(u.Path, username)
// 元のURLにクエリパラメータがついていた場合の上書きを防げる。
q := u.Query()
q.Set("__a", "1")
u.RawQuery = q.Encode()
req, err := http.Get(u.String())
...
간혹path/filepath
사용된 물건을 보고 다시 파악path
하고 path/filepath
포장의 사용법이 다르면 좋겠다.path
포장의 분배가 전부이지만 당분간은 말하지 않겠다.Package path implements utility routines for manipulating slash-separated paths.
The path package should only be used for paths separated by forward slashes, such as the paths in URLs. This package does not deal with Windows paths with drive letters or backslashes; to manipulate operating system paths, use the path/filepath package.
ref.
- golang.org/pkg/path/
- Golang 대신 path 를 사용하여 물리적 파일을 조작하면 폭발합니다.
또한 여러 외부 API용 HTTP 클라이언트가 기록되어 있습니다.
공개된 포장은 오피셜/unofficial을 포함해 여러 가지가 있다고 생각해요. 몇 개 볼 수 있어요!
Reference
이 문제에 관하여(HTTP 클라이언트를 Go로 쓸 때 URL을 조립하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/yyoshiki41/items/a0354d9ad70c1b8225b6텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)