教程集 www.jiaochengji.com
教程集 >  Golang编程  >  golang教程  >  正文 golang实现各种情况的get请求

golang实现各种情况的get请求

发布时间:2022-02-03   编辑:jiaochengji.com
教程集为您提供golang实现各种情况的get请求等资源,欢迎您收藏本站,我们将为您提供最新的golang实现各种情况的get请求资源
<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>

<h3>go http get 总结</h3> <ul><li><ul><li><ul><li>请求地址</li><li>普通get请求</li><li>请求参数放到url.Values{}</li><li>自定义请求(添加头、cookie)</li><li>接收文件--ioutil.WriteFile</li><li>接收文件--io.Copy</li></ul></li></ul></li></ul>

<h3>请求地址</h3> <pre><code class="lang-go hljs"><span class="token keyword">var</span> <span class="token punctuation">(</span> requestGetURLNoParams <span class="token builtin">string</span> <span class="token operator">=</span> <span class="token string">"http://httpbin.org/get"</span> requestGetURL <span class="token builtin">string</span> <span class="token operator">=</span> <span class="token string">"http://httpbin.org/get?a=a&b=b&c=ccc"</span> imageURL <span class="token builtin">string</span> <span class="token operator">=</span> <span class="token string">"http://httpbin.org/image"</span> <span class="token punctuation">)</span> </code></pre> <h3>普通get请求</h3> <pre><code class="lang-go hljs"> <span class="token comment">// 基本get请求</span> <span class="token keyword">func</span> <span class="token function">basicGet</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span> resp<span class="token punctuation">,</span> err <span class="token operator">:=</span> http<span class="token punctuation">.</span><span class="token function">Get</span><span class="token punctuation">(</span>requestGetURLNoParams<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> log<span class="token punctuation">.</span><span class="token function">Println</span><span class="token punctuation">(</span><span class="token string">"err"</span><span class="token punctuation">)</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> b<span class="token punctuation">,</span> err <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 keyword">if</span> err <span class="token operator">!=</span> <span class="token boolean">nil</span> <span class="token punctuation">{</span> log<span class="token punctuation">.</span><span class="token function">Println</span><span class="token punctuation">(</span><span class="token string">"err"</span><span class="token punctuation">)</span> <span class="token punctuation">}</span> fmt<span class="token punctuation">.</span><span class="token function">Println</span><span class="token punctuation">(</span><span class="token function">string</span><span class="token punctuation">(</span>b<span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token punctuation">}</span> </code></pre> <h3>请求参数放到url.Values{}</h3> <pre><code class="lang-go hljs"> <span class="token comment">// get请求参数放到 "net/url"</span> <span class="token keyword">func</span> <span class="token function">basicGetURLParams</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span> params <span class="token operator">:=</span> url<span class="token punctuation">.</span>Values<span class="token punctuation">{</span><span class="token punctuation">}</span> parseURL<span class="token punctuation">,</span> err <span class="token operator">:=</span> url<span class="token punctuation">.</span><span class="token function">Parse</span><span class="token punctuation">(</span>requestGetURLNoParams<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> log<span class="token punctuation">.</span><span class="token function">Println</span><span class="token punctuation">(</span><span class="token string">"err"</span><span class="token punctuation">)</span> <span class="token punctuation">}</span> params<span class="token punctuation">.</span><span class="token function">Set</span><span class="token punctuation">(</span><span class="token string">"aaa"</span><span class="token punctuation">,</span> <span class="token string">"aaa"</span><span class="token punctuation">)</span> params<span class="token punctuation">.</span><span class="token function">Set</span><span class="token punctuation">(</span><span class="token string">"age"</span><span class="token punctuation">,</span> <span class="token string">"23"</span><span class="token punctuation">)</span> <span class="token comment">//如果参数中有中文参数,这个方法会进行URLEncode</span> parseURL<span class="token punctuation">.</span>RawQuery <span class="token operator">=</span> params<span class="token punctuation">.</span><span class="token function">Encode</span><span class="token punctuation">(</span><span class="token punctuation">)</span> urlPathWithParams <span class="token operator">:=</span> parseURL<span class="token punctuation">.</span><span class="token function">String</span><span class="token punctuation">(</span><span class="token punctuation">)</span> resp<span class="token punctuation">,</span> err <span class="token operator">:=</span> http<span class="token punctuation">.</span><span class="token function">Get</span><span class="token punctuation">(</span>urlPathWithParams<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> log<span class="token punctuation">.</span><span class="token function">Println</span><span class="token punctuation">(</span><span class="token string">"err"</span><span class="token punctuation">)</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> b<span class="token punctuation">,</span> err <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 keyword">if</span> err <span class="token operator">!=</span> <span class="token boolean">nil</span> <span class="token punctuation">{</span> log<span class="token punctuation">.</span><span class="token function">Println</span><span class="token punctuation">(</span><span class="token string">"err"</span><span class="token punctuation">)</span> <span class="token punctuation">}</span> fmt<span class="token punctuation">.</span><span class="token function">Println</span><span class="token punctuation">(</span><span class="token function">string</span><span class="token punctuation">(</span>b<span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token punctuation">}</span> </code></pre> <h3>自定义请求(添加头、cookie)</h3> <pre><code class="lang-go hljs"> <span class="token comment">// 可以设置请求头 添加cookie</span> <span class="token keyword">func</span> <span class="token function">basicGetHeader</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span> client <span class="token operator">:=</span> http<span class="token punctuation">.</span>Client<span class="token punctuation">{</span><span class="token punctuation">}</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>http<span class="token punctuation">.</span>MethodGet<span class="token punctuation">,</span> requestGetURLNoParams<span class="token punctuation">,</span> <span class="token boolean">nil</span><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> log<span class="token punctuation">.</span><span class="token function">Println</span><span class="token punctuation">(</span><span class="token string">"err"</span><span class="token punctuation">)</span> <span class="token punctuation">}</span> <span class="token comment">// 添加请求头</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;charset=utf-8"</span><span class="token punctuation">)</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">"header"</span><span class="token punctuation">,</span> <span class="token string">"header

您可能感兴趣的文章:
Golang 一致性Hash算法实现
golang map key 正则表达_在GoLang中实现线程安全的字典
golang接口-interface的实现
Golang - 访问数据库报错后程序继续运行
Golang单元测试之httptest使用
关于Golang的那些事(五) -- 函数
golang http 请求未释放造成的错误
go语言中map的实现原理
Golang包管理详解
Go 1.5之前的多种包管理机制简介(

[关闭]
~ ~