Golang傳送post表單請求
先寫一個可以接收post請求的伺服器:
package main import ( "fmt" "net/http" ) func main() { http.HandleFunc("/postpage", func(w http.ResponseWriter, r *http.Request) { //接受post請求,然後打印表單中key和value欄位的值 if r.Method == "POST" { var ( key string = r.PostFormValue("key") value string = r.PostFormValue("value") ) fmt.Printf("key is : %s\n", key) fmt.Printf("value is: %s\n", value) } }) err := http.ListenAndServe(":80", nil) if err != nil { fmt.Println(err.Error()) return } }
然後我們使用net/http包來發送post請求:
package main import ( "fmt" "net/http" "net/url" ) func main() { //這裡新增post的body內容 data := make(url.Values) data["key"] = []string{"this is key"} data["value"] = []string{"this is value"} //把post表單傳送給目標伺服器 res, err := http.PostForm("http://127.0.0.1/postpage", data) if err != nil { fmt.Println(err.Error()) return } defer res.Body.Close() fmt.Println("post send success") }
如果你不想用現成的包,那麼下面這段程式碼就是直接通過HTTP協議實現post請求,執行效果和上面這段程式碼一樣:
package main import ( "fmt" "net" ) func main() { //因為post方法屬於HTTP協議,HTTP協議以TCP為基礎,所以先建立一個 //TCP連線,通過這個TCP連線來發送我們的post請求 conn, err := net.Dial("tcp", "127.0.0.1:80") if err != nil { fmt.Println(err.Error()) return } defer conn.Close() //構造post請求 var post string post += "POST /postpage HTTP/1.1\r\n" post += "Content-Type: application/x-www-form-urlencoded\r\n" post += "Content-Length: 37\r\n" post += "Connection: keep-alive\r\n" post += "Accept-Language: zh-CN,zh;q=0.8,en;q=0.6\r\n" post += "\r\n" post += "key=this is key&value=this is value\r\n" if _, err := conn.Write([]byte(post)); err != nil { fmt.Println(err.Error()) return } fmt.Println("post send success.") }
執行第一段程式碼的程式,然後執行一下第二個或第三個程式來發送post請求,執行結果如圖:
如果轉載請註明出處:http://blog.csdn.net/gophers/article/details/22870185
相關推薦
Golang傳送post表單請求
先寫一個可以接收post請求的伺服器: package main import ( "fmt" "net/http" ) func main() { http.HandleFunc("/postpage", func(w http.ResponseWriter,
java 後臺模擬post表單請求傳送key-value資料亂碼
首先是key-value的模型: public class PostValue { private String key; private String value; public PostValue(String key, S
PHP使用CURL向Python,Golang傳送檔案表單上傳檔案[HTTP協議下Api]
PHP傳送方程式碼段: <?php /** * htppCurl表單上傳檔案 * @param $file FILE_ADDR * @param string $url uri * @param string $key key * @return bool|mixed *
Spring MVC 接收POST表單請求,獲取引數總結
前段時間遇到一個問題,在spring mvc 服務端接收post請求時,通過html 表單提交的時候,服務端能夠接收到引數的值。但是使用httpclient4.3構造post請求,卻無法接收到引數的值。spring 程式碼: @RequestMapping(value
Django + Ajax傳送POST表單,並將返回資訊回顯到頁面中
將表單資料傳送回後端,然後處理後端返回的資訊並顯示在當前頁面中,這裡使用Ajax進行處理; 那麼先看js程式碼: <!--以下為 Ajax指令碼 --> <script src="http://apps.bdimg.com/li
golang中傳送post的json請求
package main import ( "encoding/json" "log" "net/http" ) type test_struct struct { Test string } //func test(rw http.ResponseWriter, req *
AJAX的表單請求POST請求方式
表單資料的提交 action : 資料提交的地址,預設是當前頁面 method : 資料提交的方式,預設是get方式 post: 把資料名稱和資料值用=連線,如果有多個的話,那麼他會把多個數據組合用&a
ajax請求傳送form表單資料以及中文亂碼處理
將資料放在form表單中通過form.submit去提交資料是我們常用也很方便的請求方式,但是有時候我們需要不重新整理頁面去處理資料,這個時候就要用到ajax,並且查詢的資料存放在form表單中,有時
使用httppost請求傳送form表單的方法
本人在使用httpclient做介面自動化的過程中,遇到了post請求提交資料是form表單,因為我從資料庫讀取到的case是map形式的,所以經常嘗試和驗證,寫了一個方法把map裡面的資料轉化為form表單,然後使用post請求傳送資料。下面是轉化和設定方法,分享出來,供
利用ajax異步處理POST表單中的數據
利用 tex oda checkbox nbsp st表 success target .ajax //防止頁面進行跳轉 $(document).ready(function(){ $("#submit").click(function(
layui點擊彈框頁面 表單請求
點擊 .post msg inline nbsp ces 相關 block mes $("#addSite").click(function () { layer.open({ title: ‘添加站點‘, type: 1,
laravel 的 表單請求
依賴 相同 AS tis 創建表 需要 文章 創建 font 在對文章、帖子等信息進行創建、更新的時候,需要進行表單驗證的時候,一般我們使用Request來獲取輸入的值來進行驗證,這樣需要在每一個方法中進行書寫驗證規則。 laravel 提供了創建表單請求,我們可以使用
Laravel 5.5 FormRequest 自定義表單請求驗證類
根目錄 use his extends 數據 不一致 不能 登錄模塊 能夠 1、把表單驗證邏輯寫在Controller中,這是最基礎的方法,但是不好維護,如: 1 namespace App\Http\Controllers\Admin; 2 3 use Illu
Ajax的post表單,不在url後接一大串參數鍵值對的方法
url efault opp 解決方案 數值 .cn 寫上 prevent sub $(‘#loginForm‘).on(‘submit‘,function (ev) { //阻止表單參數附在url後面 ev.stopPropagation
向指定 URL 傳送POST方法的請求(狀態碼200和其他有區別)
public static String sendPost(String url, String param) { OutputStreamWriter out = null; BufferedReader in = null; String result = ""; t
【laravel】 複雜表單請求驗證類,實現一個類對應多個表單
一、序言 laravel 中提供了兩種驗證請求資料的方法,第一種方法適用於簡單的驗證,表單驗證和業務邏輯放在一起,顯得業務程式碼臃腫,而且重複的驗證規則基本也是複製貼上,程式碼也不好看,這是關鍵。本篇教程就不說這個了,需要了解的請戳這裡。第二種就是建立請求驗證類,下面就詳細說
HttpSenderUtil向指定 URL 傳送POST方法的請求
package com.founder.ec.common.utils; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.P
【laravel】 複雜表單請求驗證類,實現一個類對應多個表單
一、序言 laravel 中提供了兩種驗證請求資料的方法,第一種方法適用於簡單的驗證,表單驗證和業務邏輯放在一起,顯得業務程式碼臃腫,而且重複的驗證規則基本也是複製貼上,程式碼也不好看,這是關鍵
curl post表單上傳檔案(C++)
最近測試如何上傳檔案到伺服器。原來傳照片一致通過binary 形式傳檔案,或者把圖片base64編碼傳圖片。一致沒有用form-data 表單形式傳送資料,今天嘗試下如何使用libcurl提供的API上傳檔案。 Sample code: #include <
Request物件接收表單請求引數的中文亂碼處理
在開發中,很多人會遇到使用Request物件接收表單請求引數會遇到中文亂碼,至於怎麼處理呢?只需要瞭解其產生亂碼的原因,處理起來還是很容易的,接下來用程式碼演示: * Request接收中文資料 */ public class RequestDemo3 ext