コードを受信して処理するのゴー言語のhttpリクエスト

1  パッケージメイン
 2  
。3  インポート(
 4      " エンコーディング/ JSON " 
5      " FMT " 
6      " github.com/julienschmidt/httprouter " 
7      " NET / HTTP " 
。8  。9  
10  // ResponseWriter三つの方法書き込みWriteHeaderを有するインタフェースでありますヘッダメソッドパラメータ応答コード
。11 FUNCハロー(http.ResponseWriter Wは、R * http.Request、P httprouter.Params){
 12は      fmt.Fprintf(W、" こんにちは、%S \ N- "、p.ByName(" 名前"))
 13  }
14  
15  // 读取请求头
16の FUNCヘッダ(W http.ResponseWriter、R * http.Request){
 17      // マップ[受け入れる:[* / *]同意をコードする:[GZIP、DEFLATE、BR]
 18      // Cache-Control:[キャッシュなし]接続:[キープアライブ]のContent-Length:[42]のContent-Type:[text / plainの]
 19      // ポストマン・トークン:[9d84b4f5-1b43-411a-89c3-fbd9c34d199f]ユーザーエージェント:[PostmanRuntime / 7.24.0] 
20      H:= r.Header
 21      fmt.Fprintln(H、W)
 22  }
 23の 
24  // 表单数据提交
25の FUNC処理(http.ResponseWriter W、R * HTTP。リクエスト){
 26     r.ParseForm()
 27      fmt.Fprintln(r.Form、ワット)// マップ[こんにちは:[サウsheong] POST:[456]]
 28      // r.PostFormはキーURLを取り戻すませんだけで、フォームのキーと値のペアであります値
29  }
 30  
31である FUNC体(http.ResponseWriter Wは、R * http.Request){
 32      でlen = r.ContentLength // 本体の取得データ長
33である      本体:メイク=([] バイト、LEN)
 34であり、     R&LT。 Body.Read(本体)
 35      fmt.Fprintln(W、LEN)
 36      fmt.Fprintln(W、文字列(本体))
 37  }
 38は、 
39の // ResponseWriterリターンJSONデータ
40 
41型ポスト構造体{
 42      ユーザ     ストリング
43      スレッド[] ストリング
44  }
 45  
46  // 向浏览器返回JSON数据
47 jsonExample FUNC(http.ResponseWriter W、R * http.Request){
 48      w.Header()。セット(" コンテンツタイプ"" アプリケーション/ JSON " 49      後:=&ポスト{
 50          ユーザ:     " zhangsan " 51件の          スレッド:[] ストリング { "NiHao " " wohao " }、
 52である     }
 53で      JSON、_:= json.Marshal(POST)// JSONマーシャル:データは、JSON文字列に符号化された
54れる     w.Write(JSON)
 55  }
 56は、 
57であり、 // ブラウザ送信クッキー
58 FUNCますsetcookie(http.ResponseWriter Wは、R * http.Request){
 59      C1:= http.Cookie {
 60          名:      " first_cookie " 61である          値:     " Webプログラミングゴー" 62は          HttpOnlyの:63      }
 64      C2:= http.Cookie {
 65          名:      " second_cookie " 66          値:     " マニングプログラミング" 67          HttpOnlyの:68      }
 69      // 。w.Header()セット( "のSet-Cookie" 、c1.String())
 70      // w.Header()。( "のSet-Cookie"を追加し、c2.String())
71      http.SetCookie(&、W C1)
 72      http.SetCookie()ワット、&​​C2 / / 三种设置クッキー的方法
73  }
 74 
75  // 从浏览器获得クッキー
76 FUNC getCookie(W http.ResponseWriter、R * http.Request){
 77      H:= r.Header [ " クッキー" ]
 78の      CS:= r.Cookies()
 79      fmt.Fprintln( W、H)
 80      CS、W fmt.Fprintln()
 81  }
 82  
83  FUNCメイン(){
 84      // MUX:= httprouter.New()
 85      // mux.GET( "/ハロー/:名"、ハロー)
 86      // log.Fatal(http.ListenAndServe( "8080"、MUX))
 87      // 
88      // http.HandleFunc( "/ヘッダ"、ヘッダ)
89      // http.HandleFunc( "/ボディ"、本体)
 90      // http.HandleFunc( "/プロセス"プロセス)
 91      // http.HandleFunc( "/ JSON"、jsonExample)
92      http.HandleFunc(" /ますsetcookie " ますsetcookie)
 93      http.HandleFunc(" / getcookie "getCookie)
 94 95      http.ListenAndServe(" :8080 、ゼロ)
 96 97 } 
 

 

おすすめ

転載: www.cnblogs.com/yh2924/p/12598184.html