婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > go Http Post 發送文件流案例

go Http Post 發送文件流案例

熱門標簽:赤峰電銷 利用地圖標注位置 杭州人工智能電銷機器人費用 官渡電銷外呼管理系統怎么收費 谷歌美發店地圖標注 400開頭電話怎樣申請 貴州電話智能外呼系統 地圖區域圖標注后導出 江蘇呼叫中心外呼系統有效果嗎

我就廢話不多說了,大家還是直接看代碼吧~

package main
import (
 "net/http"
 "net/url"
 "fmt"
 "io/ioutil"
 _ "io"
 "bytes"
)
func main() {
 postFile()
}
func post() {
  //這是一個Post 參數會被返回的地址
  strinUrl:="http://localhost:8080/aaa"`這里寫代碼片`
  resopne,err:= http.PostForm(strinUrl,url.Values{"num":{"456"},"num1":{"123"}})
  if err !=nil {
  fmt.Println("err=",err)
  }
  defer func() {
   resopne.Body.Close()
   fmt.Println("finish")
  }()
  body,err:=ioutil.ReadAll(resopne.Body)
  if err!=nil {
   fmt.Println(" post err=",err)
  }
  fmt.Println(string(body))
}
func postFile(){
 //這是一個Post 參數會被返回的地址
 strinUrl:="http://localhost:8080/aaa"
 byte,err:=ioutil.ReadFile("post.txt")
 resopne,err :=http.Post(strinUrl,"multipart/form-data",bytes.NewReader(byte))
 if err !=nil {
  fmt.Println("err=",err)
 }
 defer func() {
  resopne.Body.Close()
  fmt.Println("finish")
 }()
 body,err:=ioutil.ReadAll(resopne.Body)
 if err!=nil {
  fmt.Println(" post err=",err)
 }
 fmt.Println(string(body))
}

水滴石穿。這里把Go Http Post 參數的函數也貼了處理主要對比兩者不同之處。

補充:golang爬蟲 模擬各種情況的post請求 文件上傳

go實現各種類型的post請求

請求測試地址

var (
 requestPostURL string = "http://httpbin.org/post"
 // 接收文件的服務自己實現qwq
 // 接收一張圖片上傳 postman的key file
 imagePostURL  string = "/imageUpload/upload"
 // 接收多張圖片上傳 postman的key file
 imageMultiPostURL string = "/imageUpload/uploads"
)

application/x-www-from-urlencoded

說明

application/x-www-from-urlencoded,會將表單內的數據轉換為鍵值對,比如,name=javaage = 23

示例

// 
func postXWwwFromURLEncoded() {
 client := http.Client{}
 // 不帶任何的請求數據post
 // req, err := http.NewRequest(http.MethodPost, requestPostURL, nil)
 // 帶數據
 urlValues := url.Values{}
 urlValues.Add("name", "張三")
 urlValues.Add("age", "18")
 reqBody := urlValues.Encode()
 req, err := http.NewRequest(http.MethodPost, requestPostURL, strings.NewReader(reqBody))
 if err != nil {
 log.Println("err")
 }
 resp, err := client.Do(req)
 if err != nil {
 log.Println("err")
 }
 defer resp.Body.Close()
 b, err := ioutil.ReadAll(resp.Body)
 if err != nil {
 log.Println("err")
 }
 fmt.Println(string(b))
 // urlValues := url.Values{}
 // urlValues.Add("name","zhaofan")
 // urlValues.Add("age","22")
 // resp, _ := http.PostForm("http://httpbin.org/post",urlValues)
}

raw

說明

// 也就是入參方式為json

// 可以上傳任意格式的文本,可以上傳text、json、xml、html

示例

func postRaw() {
 client := http.Client{}
 // 帶數據 json 類型
 urlValues := map[string]interface{}{
 "name":  "jack",
 "age":  18,
 "is_active": true,
 }
 b1, _ := json.Marshal(urlValues)
 // b1, _ := json.Marshal(urlValues)
 req, err := http.NewRequest(http.MethodPost, requestPostURL, bytes.NewReader(b1))
 if err != nil {
 log.Println("err")
 }
 resp, err := client.Do(req)
 if err != nil {
 log.Println("err")
 }
 defer resp.Body.Close()
 b, err := ioutil.ReadAll(resp.Body)
 if err != nil {
 log.Println("err")
 }
 fmt.Println(string(b))
}

multipart/form-data 帶普通參數

說明

// multipart/form-data

// 既可以上傳文件,也可以上傳鍵值對

// 上傳的字段是文件時,會有Content-Type來說明文件類型;content-disposition

// 可以上傳多個文件

示例

// multipart/form-data 帶普通參數 key-value
func postFormDataWithParams() {
 client := http.Client{}
 // 不帶任何的請求數據post
 body := bytes.Buffer{}
 writer := multipart.NewWriter(body)
 params := map[string]string{
 "name": "zhangsan",
 "age": "12",
 }
 for key, val := range params {
 _ = writer.WriteField(key, val)
 }
 writer.Close()
 req, err := http.NewRequest(http.MethodPost, requestPostURL, body)
 if err != nil {
 log.Println("err")
 }
 resp, err := client.Do(req)
 if err != nil {
 log.Println("err")
 }
 defer resp.Body.Close()
 b, err := ioutil.ReadAll(resp.Body)
 if err != nil {
 log.Println("err")
 }
 fmt.Println(string(b))
}

multipart/form-data 上傳一個文件

// key:file 里面放一個文件
// multipart/form-data 傳一個文件
func postFormDataWithSingleFile() {
 client := http.Client{}
 bodyBuf := bytes.Buffer{}
 bodyWrite := multipart.NewWriter(bodyBuf)
 file, err := os.Open("./images/img.jpg")
 defer file.Close()
 if err != nil {
 log.Println("err")
 }
 // file 為key
 fileWrite, err := bodyWrite.CreateFormFile("file", "img.jpg")
 _, err = io.Copy(fileWrite, file)
 if err != nil {
 log.Println("err")
 }
 bodyWrite.Close() //要關閉,會將w.w.boundary刷寫到w.writer中
 // 創建請求
 contentType := bodyWrite.FormDataContentType()
 req, err := http.NewRequest(http.MethodPost, imagePostURL, bodyBuf)
 if err != nil {
 log.Println("err")
 }
 // 設置頭
 req.Header.Set("Content-Type", contentType)
 resp, err := client.Do(req)
 if err != nil {
 log.Println("err")
 }
 defer resp.Body.Close()
 b, err := ioutil.ReadAll(resp.Body)
 if err != nil {
 log.Println("err")
 }
 fmt.Println(string(b))
}

multipart/form-data 上傳多個文件

// key:file 里面放多個文件
// multipart/form-data 傳多個文件
func postFormDataWithMultipartFile() {
 client := http.Client{}
 bodyBuf := bytes.Buffer{}
 bodyWrite := multipart.NewWriter(bodyBuf)
 images := []string{"img.jpg", "img1.jpg"}
 for _, val := range images {
 file, err := os.Open("./images/" + val)
 defer file.Close()
 if err != nil {
 log.Println("err")
 }
 fileWrite, err := bodyWrite.CreateFormFile("file", val)
 _, err = io.Copy(fileWrite, file)
 if err != nil {
 log.Println("err")
 }
 }
 bodyWrite.Close() //要關閉,會將w.w.boundary刷寫到w.writer中
 // 創建請求
 req, err := http.NewRequest(http.MethodPost, imagePostURL, bodyBuf)
 if err != nil {
 log.Println("err")
 }
 // 設置頭
 contentType := bodyWrite.FormDataContentType()
 req.Header.Set("Content-Type", contentType)
 resp, err := client.Do(req)
 if err != nil {
 log.Println("err")
 }
 defer resp.Body.Close()
 b, err := ioutil.ReadAll(resp.Body)
 if err != nil {
 log.Println("err")
 }
 fmt.Println(string(b))
}

binary

// Content-Type:application/octet-stream,從字面意思得知,只可以上傳二進制數據,通常用來上傳文件,
// 由于沒有鍵值,所以,一次只能上傳一個文件
func postBinary() {
}

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。

您可能感興趣的文章:
  • 在golang xorm中使用postgresql的json,array類型的操作
  • golang使用http client發起get和post請求示例
  • GO接收GET/POST參數及發送GET/POST請求的實例詳解
  • golang post請求常用的幾種方式小結

標簽:松原 宜春 泰安 河池 鷹潭 黔西 保定 武漢

巨人網絡通訊聲明:本文標題《go Http Post 發送文件流案例》,本文關鍵詞  Http,Post,發送,文件,流,案例,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《go Http Post 發送文件流案例》相關的同類信息!
  • 本頁收集關于go Http Post 發送文件流案例的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    国产精品一区二区久激情瑜伽| 婷婷丁香久久五月婷婷| 国产视频亚洲色图| 国产精品一区二区在线观看不卡 | 亚洲超碰精品一区二区| 国内久久婷婷综合| 日韩欧美色综合| 日本一区二区在线不卡| 国产一区二区三区免费播放| 欧美va在线播放| 午夜亚洲国产au精品一区二区| 91小视频免费看| 国产亚洲综合性久久久影院| 久久国产生活片100| 欧美三区在线视频| 午夜视频在线观看一区二区| 日韩欧美一区二区三区在线| 视频一区免费在线观看| heyzo一本久久综合| 日韩欧美黄色影院| 亚洲日本在线视频观看| 亚洲综合丁香婷婷六月香| 一区二区三区日韩| 一区二区三区欧美| 理论电影国产精品| 国产98色在线|日韩| 色哟哟欧美精品| 久久久久久久久久久久电影| 亚洲久草在线视频| 国产一区二区三区美女| 欧美日韩精品三区| 1024精品合集| 国产传媒日韩欧美成人| 欧美人与性动xxxx| 亚洲自拍偷拍图区| 亚洲精品videosex极品| 紧缚奴在线一区二区三区| 欧美年轻男男videosbes| 亚洲欧洲精品一区二区精品久久久| 成人黄色一级视频| 欧美96一区二区免费视频| 粉嫩aⅴ一区二区三区四区| 欧美精品 国产精品| 欧美成人一区二区三区片免费 | 日韩欧美在线影院| 亚洲视频一二三区| 国产福利不卡视频| 日韩欧美电影一区| 秋霞午夜鲁丝一区二区老狼| 欧美伊人久久久久久久久影院| 国产精品二三区| 精品中文av资源站在线观看| 欧美日韩一区二区三区四区五区| 国产精品乱码久久久久久| 国产麻豆精品在线观看| 欧美另类z0zxhd电影| 天天亚洲美女在线视频| 99久久精品国产精品久久| 日韩精品一区二区三区四区| 日韩欧美国产一区在线观看| 国产一区二区主播在线| 日本精品一级二级| 日日噜噜夜夜狠狠视频欧美人 | 麻豆精品一区二区三区| 欧美高清视频不卡网| 蜜桃精品视频在线观看| 欧美变态凌虐bdsm| 高清在线不卡av| 亚洲欧美日韩中文播放| 欧美性高清videossexo| 五月天中文字幕一区二区| 欧美一级二级三级乱码| 国产在线视频不卡二| 国产精品少妇自拍| 在线精品视频小说1| 日韩精品亚洲一区二区三区免费| 日韩一区二区免费视频| 国产欧美日韩三区| 一本色道久久综合亚洲91| 国产日本欧洲亚洲| 91影院在线观看| 国产精品国产精品国产专区不蜜 | 色婷婷精品久久二区二区蜜臂av| 亚洲精品视频在线看| 日韩一区二区在线观看视频| 久久99国内精品| 欧美一级免费大片| 成人免费电影视频| 91亚洲国产成人精品一区二三| 五月激情六月综合| 欧美午夜精品久久久久久超碰| 国内精品在线播放| 亚洲精品在线观| 欧美日韩另类国产亚洲欧美一级| 精品一区二区三区香蕉蜜桃| 国产亚洲欧美色| 欧美日韩一区高清| 福利电影一区二区| 亚洲亚洲人成综合网络| 久久久久久9999| 欧美一区二区视频在线观看2022| 国产999精品久久| 蜜桃av噜噜一区| 亚洲福中文字幕伊人影院| 久久尤物电影视频在线观看| 欧美日韩一级视频| 97se亚洲国产综合自在线| 久久国产精品无码网站| 欧美一级片在线| 99精品国产热久久91蜜凸| 蜜臀av一区二区| 日本在线不卡一区| 亚洲电影一区二区三区| 国产精品国产三级国产aⅴ无密码| 日韩精品一区二区在线观看| 欧美日韩电影在线播放| 91首页免费视频| 成人aa视频在线观看| 男男gaygay亚洲| 久久久国产综合精品女国产盗摄| 91理论电影在线观看| 婷婷亚洲久悠悠色悠在线播放| 欧美日韩在线一区二区| 色美美综合视频| 91免费版pro下载短视频| www.欧美精品一二区| 国产99精品国产| www.亚洲人| 99re这里只有精品视频首页| 成人亚洲精品久久久久软件| 粉嫩av一区二区三区粉嫩| 国产精品996| 麻豆精品精品国产自在97香蕉| 一区二区三区日韩| 亚洲精品免费电影| 亚洲成人av免费| 亚洲18色成人| 五月天激情小说综合| 亚洲国产综合91精品麻豆 | 亚洲午夜久久久久久久久电影网| 国产精品天干天干在观线| 欧美极品美女视频| 亚洲欧美怡红院| 国产精品欧美一级免费| 国产精品不卡视频| 亚洲欧洲日韩综合一区二区| 国产精品视频看| 亚洲免费在线观看视频| 亚洲精品视频一区| 亚洲国产一区二区视频| 欧美aaaaaa午夜精品| 国产成人精品免费看| 99re热视频精品| 久久精品国产精品青草| 狂野欧美性猛交blacked| 日本成人中文字幕| 一区二区免费在线播放| 亚洲国产成人午夜在线一区| 亚洲人成网站精品片在线观看| 亚洲精品成人悠悠色影视| 亚洲一区二区三区美女| 日本一道高清亚洲日美韩| 国产日韩欧美电影| 一区精品在线播放| 欧美精品一区男女天堂| 午夜精品福利一区二区蜜股av| 秋霞影院一区二区| 成人性色生活片| 欧美三级一区二区| www久久精品| 亚洲人成7777| 国产麻豆午夜三级精品| www.成人在线| 日韩欧美一区在线| 亚洲精品成人悠悠色影视| 国产精品一区不卡| 欧美在线视频你懂得| 久久久久99精品一区| 天天亚洲美女在线视频| 国产91综合一区在线观看| 国产一区二区看久久| 欧美亚洲动漫制服丝袜| 欧美精品一区二区高清在线观看| 欧美激情一区三区| 美女一区二区在线观看| 欧美中文字幕不卡| 椎名由奈av一区二区三区| 国产成人av在线影院| 日韩一区国产二区欧美三区| 国产精品拍天天在线| 奇米精品一区二区三区在线观看| 男人的天堂亚洲一区| 欧美人与z0zoxxxx视频| 亚洲一区二区精品视频| 色视频欧美一区二区三区| 国产精品护士白丝一区av| 成人免费av网站| 国产精品麻豆欧美日韩ww| 激情国产一区二区| 精品国产乱子伦一区|