我認爲這可能是我在SO上的第一個問題。我剛剛沉浸在Go中。我剛剛讀完編程簡介我想寫一個簡單的程序來查詢YT Data API v3。使用Go的net/http包連接到YouTube API的問題
問題:執行go run request.go
時出現404 Not Found
錯誤。但是,當我採用已通過的URL並粘貼到瀏覽器或郵遞員時,請求可以正常工作。這裏是我的func main() {}
是什麼樣子:
func main() {
// read in API key
key, error_ := ioutil.ReadFile("user_data.txt")
if error_ != nil {
log.Fatal(error_)
}
api_key += string(key)
// buil url
url := base_url + query + api_key
// Uncomment the next line to show that I'm not insane.
// url = "http://ip.jsontest.com/"
// make request
resp, err := http.Get(url)
if err != nil {
log.Fatal(err)
}
body, error_g := ioutil.ReadAll(resp.Body)
if error_g != nil {
fmt.Println(error_g)
}
fmt.Println(resp.Status)
fmt.Println(resp.Request)
fmt.Println(string(body))
defer resp.Body.Close()
// parse response
var vs Videos
err = json.NewDecoder(resp.Body).Decode(&vs)
if err != nil {
fmt.Printf("%T\n", err)
// fmt.Println("Error:", err)
log.Fatal(err)
}
for _, v := range vs.Items {
fmt.Println(v.Id.VideoId, v.Snippet.Title)
}
}
這裏是我的回購request.go
我已經取消了該行並從jsontest中獲得了200 OK。您提供的代碼與不起作用的代碼不同,或者您的網絡中有某些代碼。 – 2014-11-06 16:38:48
如果您有Google開發人員API密鑰,請創建一個名爲'user_data.txt'的文件並將其粘貼到該文件中。確保該文件與'request.go'位於同一個目錄中。重新評論'ip.jsontest.com'這一行,然後再試一次,看看它是否會起作用。 – Tuss4 2014-11-06 19:18:24
與您的問題無關 - Google確實爲Go編寫了一個用於Youtube的API客戶端:https://developers.google.com/youtube/v3/code_samples/go – TheHippo 2014-11-09 17:34:06