golang使用httpclient发起get和post请求示例

author author     2022-09-19     127

关键词:

【转自 http://www.01happy.com/golang-http-client-get-and-post/ 】

 

get请求

get请求可以直接http.Get方法,非常简单。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
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方式

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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方法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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方法。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
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代码示例

 

从零开发区块链应用--golang网络请求(代码片段)

文章目录一、http请求简介二、初始化客户端三、golang发起GET请求3.1GET请求方法3.2基本的GET请求3.3带参数的GET请求四、golang发起POST请求4.1POST请求方法4.2不带参数的POST请求4.3不带参数的POST请求五、小结5.1HTTP协议请求方法5.2POST和GE... 查看详情

网络爬虫-基本使用(代码片段)

...    get请求的基本使用//1.打开浏览器,创建HttpClient对象CloseableHttpClienthttpClient=HttpClients.createDefault();//2.输入网址,发起get请求创建HttpGet对象HttpGetget=newHttpGet("http://112.124.1.187/index.html?typeId=16");//3.发情请求,返回响应... 查看详情

golang(第二篇发起一个http请求)

import("net/http""net/url")//发送一个简单的get请求funcGetRequest{//联系使用make(map[string]string)queryData:=make(map[string]string)//创建空间,queryData["params"]=c.QueryParam("params")u,_:=url.Parse("http://baidu.com 查看详情

使用axios发起get请求和post请求(代码片段)

axios(⭐⭐⭐)什么是axiosAxios是专注于网络数据请求的库。相比于原生的XMLHttpRequest对象,axios简单易用。相比于jQuery,axios更加轻量化,只专注于网络数据请求。axios发起GET请求axios发起get请求的语法:axios... 查看详情

httpclient-4.3.x中get和post方法使用

...inhongyu.blog.51cto.com/6373370/1538672一、简介    HttpClient是ApacheJakartaCommon下的子项目,用来提供高效的、最新的、功能丰富的支持HTTP协议的客户端编程工具包,并且它支持HTTP协议最新的版本和建议。HttpClient已经应用在... 查看详情

flutter--进阶网络请求(代码片段)

....2post请求Flutter的请求网络有多种方式:使用dartio中的HttpClient发起的请求使用dio库使用http库。1.dartio发起的请求1.1get请求import'dart:io';//导IO包imp 查看详情

wpfwebrequest和httpwebrequest已经过时,请使用httpclientunirest(代码片段)

...onse这些都已经过时。restsharp以及过时,.net5以上直接使用HttpClient。请使用HttpClient的PostAsync、GetAsyncUnirestUnirest是一个轻量级的HTTP请求库,涵盖Node、Ruby、Java、PHP、Python、Objective-C、.NET等多种语言。可发起GET,POST,PUT,PATCH,DELETE,HEAD,O... 查看详情

网络爬虫

  一、概述:(一)依赖:获取数据Httpclient:是ApacheJakartaCommon下的子项目,用来提供高效的、最新的、功能丰富的支持HTTP协议的客户端编程工具包,并且它支持HTTP协议最新的版本和建议。HttpClient已经应用在很多的项目... 查看详情

POST 后使用 HttpClient 执行 GET 时出现异常

】POST后使用HttpClient执行GET时出现异常【英文标题】:ExceptionwhenusingHttpClienttoexecuteGETafterPOST【发布时间】:2011-01-1513:59:27【问题描述】:我使用Apache的DefaultHttpClient()和execute(HttpPostpost)方法来创建一个httpPOST。有了这个我登录到一... 查看详情

httpclient能通过get类型请求发送json数据吗?

https://www.baidu.com/p?param=z,譬如通过这个url来传送,应该如何实现呢?看好多例子都是post的形式。参考技术Ahttp://www.tuicool.com/articles/Unumeu,里面有get和post请求。 查看详情

使用 HttpClient 发出 get 请求

】使用HttpClient发出get请求【英文标题】:UsingHttpClienttomakegetrequests【发布时间】:2021-12-0916:00:45【问题描述】:我已经编写了以下代码来获取虚拟数据here:exportclassAppComponentjsonPosts:any=[];constructor(privatehttpClient:HttpClient)OnInit()this.g... 查看详情

教你用三种不同方式获取get和post请求(代码片段)

...服务器提交数据 3.$.ajax()既可以获取也可以提交数据 ①使用$.ajax()发起GET请求(只需要将type属性设置为'GET'即可)  ②使用$.ajax()发起POST请求  查看详情

Android 项目使用 httpclient --> http.client (apache), post/get 方法

】Android项目使用httpclient-->http.client(apache),post/get方法【英文标题】:Androidprojectusinghttpclient-->http.client(apache),post/getmethod【发布时间】:2009-05-1709:22:17【问题描述】:我正在为一个android项目执行Get和Post方法,我需要将HttpClient... 查看详情

httpclient使用head添加cookie

最近在使用接口时候,我使用get请求时,需要携带登录态,所以在get请求的时候我需要在head里面把cookie给加上,添加方式get和post完全不一样Post方式添加cookie          httpPost=newHttpPost(url); //添加代理配置//设置代理 ... 查看详情

ajax基础3--使用原生xhr发起get,post请求(代码片段)

使用原生js发起ajax请求`XMLHttpRequest`的基本使用什么`XMLHttpRequest`使用`xhr`发起GET请求(⭐⭐⭐)了解`xhr`对象的`readyState`属性使用`xhr`发起带参数的GET请求查询字符串什么是查询字符串GET... 查看详情

使用 httpclient 使用 Json Body 调用 Get 请求

】使用httpclient使用JsonBody调用Get请求【英文标题】:CallingGetRequestwithJsonBodyusinghttpclient【发布时间】:2020-08-0914:21:41【问题描述】:今天早上我遇到了一个问题,我调用的Api是一个Get方法,但要从中获取数据,我必须发送json正文... 查看详情

java学习心得之httpclient的get和post请求

...http://www.cnblogs.com/FengXueTing-px/欢迎转载Java学习心得之 HttpClient的GET和POST请求1.前言2.GET请求3.POST请求  一、前言本篇博文记录了HttpClient的GET和POST请求本文内容基于以下文章:http://huangqiqing123.iteye.com/blog/20 查看详情

httpclient和httpurlconnection的使用和区别

...40913.html 功能用法对比从功能上对比,HttpURLConnection比HttpClient库要丰富很多,提供了很多工具,封装了http的请求头,参数,内容体,响应,还有一些高级功能,代理、COOKIE、鉴权、压缩、连接池的处理。HttpClient高级功能代码... 查看详情