golang使用http client发起get和post请求示例
来源:互联网 发布:网络信息安全培训特点 编辑:程序博客网 时间:2024/05/22 03:33
golang要请求远程网页,可以使用net/http包中的client提供的方法实现。查看了官方网站有一些示例,没有太全面的例子,于是自己整理了一下:
get请求
func httpGet() { resp, err := http.Get("http://www.01happy.com/demo/accept.php?id=1") if err != nil { // handle error } defer resp.Body.Close() body, err := ioutil.ReadAll(resp.Body) if err != nil { // handle error } fmt.Println(string(body))}
post请求
- http.Post方式
func httpPost() { resp, err := http.Post("http://www.01happy.com/demo/accept.php", "application/x-www-form-urlencoded", strings.NewReader("name=cjb")) if err != nil { fmt.Println(err) } defer resp.Body.Close() body, err := ioutil.ReadAll(resp.Body) if err != nil { // handle error } fmt.Println(string(body))}
Tips:使用这个方法的话,第二个参数要设置成”application/x-www-form-urlencoded”,否则post参数无法传递。
- http.PostForm方法
func httpPostForm() { resp, err := http.PostForm("http://www.01happy.com/demo/accept.php", url.Values{"key": {"Value"}, "id": {"123"}}) if err != nil { // handle error } defer resp.Body.Close() body, err := ioutil.ReadAll(resp.Body) if err != nil { // handle error } fmt.Println(string(body))}
复杂的请求
有时需要在请求的时候设置头参数、cookie之类的数据,就可以使用http.Do方法。
func httpDo() { client := &http.Client{} req, err := http.NewRequest("POST", "http://www.01happy.com/demo/accept.php", strings.NewReader("name=cjb")) if err != nil { // handle error } req.Header.Set("Content-Type", "application/x-www-form-urlencoded") req.Header.Set("Cookie", "name=anny") resp, err := client.Do(req) defer resp.Body.Close() body, err := ioutil.ReadAll(resp.Body) if err != nil { // handle error } fmt.Println(string(body))}
同上面的post请求,必须要设定Content-Type为application/x-www-form-urlencoded,post参数才可正常传递。
如果要发起head请求可以直接使用http client的head方法,比较简单,这里就不再说明。
本文转载自快乐编程文章:golang使用http client发起get和post请求示例
阅读全文
1 0
- golang使用http client发起get和post请求示例
- golang使用http client发起get和post请求示例
- [Golang]Http get和post请求示例
- angularJS 发起$http.post和$http.get请求
- angularJS 发起$http.post和$http.get请求
- JAVA发起Http和Https的POST/GET请求
- Java 发起http GET POST请求实例
- nodejs 发起http get post 请求
- http相应get和post请求示例
- android下使用HttpClient发起get和post请求
- Golang http Get 和 Post
- java 中使用POST发起http请求
- 使用Restlet Client发送各种Get和Post请求
- 使用HTTP GET 和HTTP POST请求访问HTTP资源
- 使用HTTP GET 和HTTP POST请求访问HTTP资源
- java使用httpclient模拟post请求和get请求示例
- HttpClient发起GET / POST请求
- HttpClient发起post、get请求
- Linux:Ldd命令介绍及使用方法
- 一样造电动车,贾跃亭成了孤家寡人,李斌的朋友圈遍布巨头
- Android6.0(包括)以后获取Wifi 扫描信息列表即getScanResults()为空
- 10030---CentOS7 64位下MySQL5.7安装与配置(YUM)
- Webpack 总结
- golang使用http client发起get和post请求示例
- 线性表之——顺序表
- Unity3D游戏开发之SQLite让数据库开发更简单
- oracle命令行建表
- Android Bitmap使用recycle()后 报:trying to use recycled bitmap 的问题
- Linux下设置和查看环境变量
- springboot mvn打包本地jar
- 对象的赋值,动态创建属性
- Linux进阶命令和Shell编程