现在再用一个网上的api,访问一个网址后返回一个Json串。
我用res,err:=http.Get(URL)总会报错,json也能获取过来,不过是在err里,带的错误信息是不规范的HTTP 响应。
请问如果返回的是json应该如何获取呢?
谢谢!
从命令行获取输入,建议用 [flag包](http://docs.studygolang.com/pkg/flag/);另外,对info参数的值进行encode,使用 [url.QueryEscape](http://docs.studygolang.com/pkg/net/url/#QueryEscape)
package main
import (
"fmt"
"io/ioutil"
"net/http"
"flag"
"net/url"
)
func main() {
var info string
flag.StringVar(&info, "i", "北京", "info value")
flag.Parse()
URL := "http://www.tuling123.com/openapi/api?key=ae01f0421fb71cb0e0f189bd4c59faa0&info=" + url.QueryEscape(info)
//URL :="http://www.baidu.com"
res, err := http.Get(URL)
if err != nil {
fmt.Println(1, err)
return
}
defer res.Body.Close()
robots, err := ioutil.ReadAll(res.Body)
if err != nil {
fmt.Println(2, err)
}
fmt.Println(3, string(robots))
}
简单运行:
`go run test.go -i=上海`
#7
更多评论
http://www.tuling123.com/openapi/api?key=ae01f0421fb71cb0e0f189bd4c59faa0&info=北京天气,网上的一个智能机器人的api。
谢谢。
#2