教程集 www.jiaochengji.com
教程集 >  Golang编程  >  golang教程  >  正文 golang 处理post、get请求以及string to json格式的转化

golang 处理post、get请求以及string to json格式的转化

发布时间:2021-12-11   编辑:jiaochengji.com
教程集为您提供golang 处理post、get请求以及string to json格式的转化等资源,欢迎您收藏本站,我们将为您提供最新的golang 处理post、get请求以及string to json格式的转化资源
<svg xmlns="http://www.w3.org/2000/svg" style="display: none;"><path stroke-linecap="round" d="M5,0 0,2.5 5,5z" id="raphael-marker-block" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);"/></svg>

1.POST请求

<pre><code class="lang-go hljs"><span class="token keyword">package</span> main <span class="token keyword">import</span> <span class="token punctuation">(</span> <span class="token string">"bytes"</span> <span class="token string">"net/http"</span> <span class="token string">"io/ioutil"</span> <span class="token punctuation">)</span> <span class="token keyword">type</span> getToken <span class="token keyword">struct</span><span class="token punctuation">{</span> <span class="token comment">// 用于将string格式转成json格式,取出token</span> Token <span class="token builtin">string</span> <span class="token string">`json:"token"`</span> <span class="token punctuation">}</span> <span class="token comment">// 处理post请求</span> <span class="token keyword">func</span> <span class="token function">GetToken</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token builtin">string</span> <span class="token punctuation">{</span> jsonStr <span class="token operator">:=</span><span class="token punctuation">[</span><span class="token punctuation">]</span><span class="token function">byte</span><span class="token punctuation">(</span><span class="token string">`{ "username": "xxx", "password": "xxx" }`</span><span class="token punctuation">)</span> <span class="token comment">// 请求时需要带的参数</span> url<span class="token operator">:=</span> <span class="token string">"url"</span> <span class="token comment">// 请求的url</span> req<span class="token punctuation">,</span> err <span class="token operator">:=</span> http<span class="token punctuation">.</span><span class="token function">NewRequest</span><span class="token punctuation">(</span><span class="token string">"POST"</span><span class="token punctuation">,</span> url<span class="token punctuation">,</span> bytes<span class="token punctuation">.</span><span class="token function">NewBuffer</span><span class="token punctuation">(</span>jsonStr<span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token comment">// 发起请求,没有参数时,可将bytes.NewBuffer(jsonStr)改为nil</span> req<span class="token punctuation">.</span>Header<span class="token punctuation">.</span><span class="token function">Add</span><span class="token punctuation">(</span><span class="token string">"Content-Type"</span><span class="token punctuation">,</span> <span class="token string">"application/json"</span><span class="token punctuation">)</span> <span class="token comment">// 发起请求时需要的头信息</span> rst<span class="token punctuation">.</span>Header<span class="token punctuation">.</span><span class="token function">Add</span><span class="token punctuation">(</span><span class="token string">"AUTHORIZATION"</span><span class="token punctuation">,</span> token<span class="token punctuation">)</span> <span class="token comment">// 发起请求时需要的头信息,需要多个时,可继续往后面加 </span> client <span class="token operator">:=</span> <span class="token operator">&</span>http<span class="token punctuation">.</span>Client<span class="token punctuation">{</span><span class="token punctuation">}</span> <span class="token comment">// 处理返回结果</span> resp<span class="token punctuation">,</span> err <span class="token operator">:=</span> client<span class="token punctuation">.</span><span class="token function">Do</span><span class="token punctuation">(</span>req<span class="token punctuation">)</span> <span class="token keyword">if</span> err <span class="token operator">!=</span> <span class="token boolean">nil</span> <span class="token punctuation">{</span> <span class="token comment">// handle error</span> <span class="token punctuation">}</span> <span class="token keyword">defer</span> resp<span class="token punctuation">.</span>Body<span class="token punctuation">.</span><span class="token function">Close</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token keyword">var</span> tokenJson getToken <span class="token comment">// 定义一个结构体,用来将结果的string格式转成json格式,便于对请求结果进行处理</span> body<span class="token punctuation">,</span> <span class="token boolean">_</span> <span class="token operator">:=</span> ioutil<span class="token punctuation">.</span><span class="token function">ReadAll</span><span class="token punctuation">(</span>resp<span class="token punctuation">.</span>Body<span class="token punctuation">)</span> <span class="token comment">// 读取请求结果</span> tokenGet <span class="token operator">:=</span> <span class="token function">string</span><span class="token punctuation">(</span>body<span class="token punctuation">)</span> <span class="token comment">// 请求结果string格式</span> errJson <span class="token operator">:=</span> json<span class="token punctuation">.</span><span class="token function">Unmarshal</span><span class="token punctuation">(</span><span class="token punctuation">[</span><span class="token punctuation">]</span><span class="token function">byte</span><span class="token punctuation">(</span>tokenGet<span class="token punctuation">)</span><span class="token punctuation">,</span> <span class="token operator">&</span>tokenJson<span class="token punctuation">)</span> <span class="token comment">// 将string 格式转成json格式</span> <span class="token keyword">if</span> errJson <span class="token operator">!=</span> <span class="token boolean">nil</span> <span class="token punctuation">{</span> initlog<span class="token punctuation">.</span>Error<span class="token punctuation">.</span><span class="token function">Println</span><span class="token punctuation">(</span>errJson<span class="token punctuation">)</span> <span class="token comment">// 错误写进日志文件</span> <span class="token punctuation">}</span> <span class="token keyword">return</span> tokenJson<span class="token punctuation">.</span>Token <span class="token comment">// 所需要的请求结果token</span> <span class="token punctuation">}</span> </code></pre>

注意:上述代码定义的结构体getToken,是用来将请求的string格式转成便于处理的json格式,结构体里面的元素名称的首字母必须是大写!否则容易采坑!

2.Get 请求与post是一样的,只需要将http.NewRequest()里面的方法改成GET即可,这里就不上代码了

到此这篇关于“golang 处理post、get请求以及string to json格式的转化”的文章就介绍到这了,更多文章或继续浏览下面的相关文章,希望大家以后多多支持JQ教程网!

您可能感兴趣的文章:
golang 处理post、get请求以及string to json格式的转化
Go Web编程--解析JSON请求和生成JSON响应
GO 发起HTTP请求调用接口
Golang单元测试之httptest使用
go 网络编程
Golang 实现JWT认证
python中的post是什么
javascript jQuery $.post $.ajax用法
golang json[]
GoLang之网络

[关闭]
~ ~