教程集 www.jiaochengji.com
教程集 >  Golang编程  >  golang教程  >  正文 golang知识点——http及其他标准库

golang知识点——http及其他标准库

发布时间:2022-01-21   编辑:jiaochengji.com
教程集为您提供golang知识点——http及其他标准库等资源,欢迎您收藏本站,我们将为您提供最新的golang知识点——http及其他标准库资源
<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><h4>http标准库</h4> <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">"fmt"</span> <span class="token string">"net/http"</span> <span class="token string">"net/http/httputil"</span> <span class="token boolean">_</span> <span class="token string">"net/http/pprof"</span> <span class="token punctuation">)</span> <span class="token keyword">func</span> <span class="token function">main</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span> request<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> <span class="token string">"http://www.imooc.com"</span><span class="token punctuation">,</span> <span class="token boolean">nil</span><span class="token punctuation">)</span> request<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">"User-Agent"</span><span class="token punctuation">,</span> <span class="token string">"Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1"</span><span class="token punctuation">)</span> <span class="token comment">// resp, err := http.Get("http://www.imooc.com")</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 function">panic</span><span class="token punctuation">(</span>err<span class="token punctuation">)</span> <span class="token punctuation">}</span> respClient <span class="token operator">:=</span> http<span class="token punctuation">.</span>Client<span class="token punctuation">{</span> CheckRedirect<span class="token punctuation">:</span> <span class="token keyword">func</span><span class="token punctuation">(</span>req <span class="token operator">*</span>http<span class="token punctuation">.</span>Request<span class="token punctuation">,</span> via <span class="token punctuation">[</span><span class="token punctuation">]</span><span class="token operator">*</span>http<span class="token punctuation">.</span>Request<span class="token punctuation">)</span> <span class="token builtin">error</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 string">"Redirect:"</span><span class="token punctuation">,</span> req<span class="token punctuation">)</span> <span class="token keyword">return</span> <span class="token boolean">nil</span> <span class="token punctuation">}</span><span class="token punctuation">,</span> <span class="token punctuation">}</span> resp<span class="token punctuation">,</span> errClientDo <span class="token operator">:=</span> respClient<span class="token punctuation">.</span><span class="token function">Do</span><span class="token punctuation">(</span>request<span class="token punctuation">)</span> <span class="token keyword">if</span> errClientDo <span class="token operator">!=</span> <span class="token boolean">nil</span> <span class="token punctuation">{</span> <span class="token function">panic</span><span class="token punctuation">(</span>err<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> s<span class="token punctuation">,</span> errDumpResponse <span class="token operator">:=</span> httputil<span class="token punctuation">.</span><span class="token function">DumpResponse</span><span class="token punctuation">(</span>resp<span class="token punctuation">,</span> <span class="token boolean">true</span><span class="token punctuation">)</span> <span class="token keyword">if</span> errDumpResponse <span class="token operator">!=</span> <span class="token boolean">nil</span> <span class="token punctuation">{</span> <span class="token function">panic</span><span class="token punctuation">(</span>errDumpResponse<span class="token punctuation">)</span> <span class="token punctuation">}</span> fmt<span class="token punctuation">.</span><span class="token function">Printf</span><span class="token punctuation">(</span><span class="token string">"%s"</span><span class="token punctuation">,</span> s<span class="token punctuation">)</span> <span class="token punctuation">}</span> </code></pre> <ul><li>使用http客户端发送请求</li><li>使用http.Client控制请求头部等</li><li>使用httputil简化工作</li></ul><h4>其他标准库</h4> <ul><li>bufio</li><li>log</li><li>encoding/json</li><li>regexp</li><li>time</li><li>string/math/rand</li><li>标准库网站 <ul><li>godoc -http:8888 (需要安装godoc)</li><li>http://www.studygolang/pkgdoc</li></ul></li></ul><h4>gin框架介绍</h4> <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">"math/rand"</span> <span class="token string">"time"</span> <span class="token string">"github.com/gin-gonic/gin"</span> <span class="token string">"go.uber.org/zap"</span> <span class="token punctuation">)</span> <span class="token keyword">const</span> keyRequestId <span class="token operator">=</span> <span class="token string">"requestId"</span> <span class="token keyword">func</span> <span class="token function">main</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span> r <span class="token operator">:=</span> gin<span class="token punctuation">.</span><span class="token function">Default</span><span class="token punctuation">(</span><span class="token punctuation">)</span> logger<span class="token punctuation">,</span> err <span class="token operator">:=</span> zap<span class="token punctuation">.</span><span class="token function">NewProduction</span><span class="token punctuation">(</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> <span class="token function">panic</span><span class="token punctuation">(</span>err<span class="token punctuation">)</span> <span class="token punctuation">}</span> <span class="token comment">//middleware</span> r<span class="token punctuation">.</span><span class="token function">Use</span><span class="token punctuation">(</span> <span class="token keyword">func</span><span class="token punctuation">(</span>c <span class="token operator">*</span>gin<span class="token punctuation">.</span>Context<span class="token punctuation">)</span> <span class="token punctuation">{</span> s <span class="token operator">:=</span> time<span class="token punctuation">.</span><span class="token function">Now</span><span class="token punctuation">(</span><span class="token punctuation">)</span> c<span class="token punctuation">.</span><span class="token function">Next</span><span class="token punctuation">(</span><span class="token punctuation">)</span> logger<span class="token punctuation">.</span><span class="token function">Info</span><span class="token punctuation">(</span><span class="token string">"income request"</span><span class="token punctuation">,</span> zap<span class="token punctuation">.</span><span class="token function">String</span><span class="token punctuation">(</span><span class="token string">"path"</span><span class="token punctuation">,</span> c<span class="token punctuation">.</span>Request<span class="token punctuation">.</span>URL<span class="token punctuation">.</span>Path<span class="token punctuation">)</span><span class="token punctuation">,</span> zap<span class="token punctuation">.</span><span class="token function">Int</span><span class="token punctuation">(</span><span class="token string">"status"</span><span class="token punctuation">,</span> c<span class="token punctuation">.</span>Writer<span class="token punctuation">.</span><span class="token function">Status</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">,</span> zap<span class="token punctuation">.</span><span class="token function">Duration</span><span class="token punctuation">(</span><span class="token string">"time"</span><span class="token punctuation">,</span> time<span class="token punctuation">.</span><span class="token function">Now</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">Sub</span><span class="token punctuation">(</span>s<span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">,</span> zap<span class="token punctuation">.</span><span class="token function">Int</span><span class="token punctuation">(</span>keyRequestId<span class="token punctuation">,</span> c<span class="token punctuation">.</span><span class="token function">GetInt</span><span class="token punctuation">(</span>keyRequestId<span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">,</span> <span class="token punctuation">)</span> <span class="token punctuation">}</span><span class="token punctuation">,</span> <span class="token keyword">func</span><span class="token punctuation">(</span>c <span class="token operator">*</span>gin<span class="token punctuation">.</span>Context<span class="token punctuation">)</span> <span class="token punctuation">{</span> c<span class="token punctuation">.</span><span class="token function">Set</span><span class="token punctuation">(</span>keyRequestId<span class="token punctuation">,</span> rand<span class="token punctuation">.</span><span class="token function">Int</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span> c<span class="token punctuation">.</span><span class="token function">Next</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">}</span><span class="token punctuation">,</span> <span class="token punctuation">)</span> <span class="token comment">//router</span> r<span class="token punctuation">.</span><span class="token function">GET</span><span class="token punctuation">(</span><span class="token string">"/ping"</span><span class="token punctuation">,</span> <span class="token keyword">func</span><span class="token punctuation">(</span>c <span class="token operator">*</span>gin<span class="token punctuation">.</span>Context<span class="token punctuation">)</span> <span class="token punctuation">{</span> h <span class="token operator">:=</span> gin<span class="token punctuation">.</span>H<span class="token punctuation">{</span> <span class="token string">"message"</span><span class="token punctuation">:</span> <span class="token string">"pong"</span><span class="token punctuation">,</span> <span class="token punctuation">}</span> <span class="token keyword">if</span> rid<span class="token punctuation">,</span> exist <span class="token operator">:=</span> c<span class="token punctuation">.</span><span class="token function">Get</span><span class="token punctuation">(</span>keyRequestId<span class="token punctuation">)</span><span class="token punctuation">;</span> exist <span class="token punctuation">{</span> h<span class="token punctuation">[</span>keyRequestId<span class="token punctuation">]</span> <span class="token operator">=</span> rid <span class="token punctuation">}</span> c<span class="token punctuation">.</span><span class="token function">JSON</span><span class="token punctuation">(</span><span class="token number">200</span><span class="token punctuation">,</span> h<span class="token punctuation">)</span> <span class="token punctuation">}</span><span class="token punctuation">)</span> r<span class="token punctuation">.</span><span class="token function">GET</span><span class="token punctuation">(</span><span class="token string">"/hello"</span><span class="token punctuation">,</span> <span class="token keyword">func</span><span class="token punctuation">(</span>c <span class="token operator">*</span>gin<span class="token punctuation">.</span>Context<span class="token punctuation">)</span> <span class="token punctuation">{</span> c<span class="token punctuation">.</span><span class="token function">String</span><span class="token punctuation">(</span><span class="token number">200</span><span class="token punctuation">,</span> <span class="token string">"hello"</span><span class="token punctuation">)</span> <span class="token punctuation">}</span><span class="token punctuation">)</span> r<span class="token punctuation">.</span><span class="token function">Run</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">}</span> </code></pre> <ul><li>gin-gonic/gin</li><li>middleware的使用</li><li>context的使用</li></ul> 到此这篇关于“golang知识点——http及其他标准库”的文章就介绍到这了,更多文章或继续浏览下面的相关文章,希望大家以后多多支持JQ教程网!

您可能感兴趣的文章:
更改MySQL数据库名实例代码
专家教你如何有效的学习Drupal - Drupal问答
网页标题随机显示名言js代码
css中position相对定位和绝对定位(relative,absolute)详解
有关mysql字符集设定的知识总结
PHPer初涉asp.net的心得体验及两者对比[1]
css 定位(相对定位与绝对定位)
PHP无限级分类菜单实例程序
asp.net常用http状态码表
PostgreSQL从菜鸟到专家系列教程(8)数据定义 字符数据类型

[关闭]
~ ~