go 通過http向服務(wù)端提交 復(fù)雜參數(shù)的提交代碼

package main

import (

"encoding/json"

"fmt"

"io"

"io/ioutil"

"net/http"

"strings"

"time"

)

type PostStruct struct {

CardNo? ? ? string `json:"cardNo"`

? EquipmentNo string `json:"equipmentNo"`

? EquipType? string `json:"equipType"`

? ScreenSpec? string `json:"screenSpec"`

}

type ResultToken struct {

Msg? ? string `json:"msg"`

? Data? Token? `json:"data"`

? Status string `json:"status"`

}

type Token struct {

Token string `json:"token"`

}

type OnlineRanking struct {

Msg? ? string? ? `json:"msg"`

? Data? []Ranking `json:"data"`

? Status string? ? `json:"status"`

}

type Ranking struct {

MemberPic? ? string? `json:"memberPic"`

? MonthDistance int? ? `json:"monthDistance"`

? Number? ? ? ? int? ? `json:"number"`

? NickName? ? ? string? `json:"nickName"`

? MonthCalorie? int? ? `json:"monthCalorie"`

? Ranking? ? ? float32 `json:"ranking"`

? EquipmentNo? string? `json:"equipmentNo"`

? MemberId? ? ? string? `json:"memberId"`

? //Csdfds string `json:"ccc"`

}

func main() {

postString :=PostStruct{

CardNo:"2955313449",

? ? ? EquipmentNo:"9",

? ? ? EquipType:"0",

? ? ? ScreenSpec:"0",

? }

url :="http://192.168.1.6:8777/v1/user/cardLogin"

? headerMap :=map[string]string{}

headerMap["Content-Type"] ="application/json;charset=UTF-8"

? jsonPostStruct, err :=json.Marshal(postString)

if err !=nil {

fmt.Println("生成json字符串錯誤")

}

code,result, err :=HttpPost(url, headerMap, strings.NewReader(string(jsonPostStruct)))

fmt.Println("最終返回Code值:", code)

fmt.Println("最終返回值:", result)

var resultToken ResultToken

? ppp :=json.Unmarshal([]byte(result), &resultToken)

if ppp ==nil {

fmt.Println("================json str 轉(zhuǎn)struct==")

fmt.Println("resultToken.CardNo:", resultToken.Msg)

fmt.Println("resultToken.Data:", resultToken.Data.Token)

fmt.Println("resultToken.Status:", resultToken.Status)

//fmt.Println(part.SerTcpSocketPort)

? }else {

fmt.Println("轉(zhuǎn)換錯誤", ppp)

}

///////////////

? url ="http://192.168.1.6:8777/v1/equipment/onlineRankingList?equipmentNo=9"

? newheaderMap :=map[string]string{}

//headerMap["Content-Type"] = "application/json;charset=UTF-8"

? newheaderMap["token"] =resultToken.Data.Token

? code, resultStr, err :=HttpGet(url, newheaderMap)

var onlineRanking OnlineRanking

? pppErr :=json.Unmarshal([]byte(resultStr), &onlineRanking)

if pppErr ==nil {

fmt.Println("================json str 轉(zhuǎn)struct==")

fmt.Println("Msg:", onlineRanking.Msg)

fmt.Println("Number:", onlineRanking.Data[0].Number)

fmt.Println("NickName:", onlineRanking.Data[0].NickName)

fmt.Println("EquipmentNo:", onlineRanking.Data[0].EquipmentNo)

fmt.Println("MemberPic:", onlineRanking.Data[0].MemberPic)

fmt.Printf("Ranking %.2f\n", onlineRanking.Data[0].Ranking)

//fmt.Println(part.SerTcpSocketPort)

? }else {

fmt.Println("轉(zhuǎn)換錯誤", pppErr)

}

testDs()

}

func testDs() {

//"B76FBFD0CAFC11E98EA4B8599F37F0402236"

? key :="B76FBFD0CAFC11E98EA4B8599F37F0402236"

? url :="http://ds.kismart.com.cn/api/member/login/social"

? newheaderMap :=map[string]string{}

newheaderMap["Content-Type"] ="application/x-www-form-urlencoded"

? newheaderMap["Accept"] ="application/json"

? ? //application/x-www-form-urlencoded? 的傳參數(shù)

? postDataStr :="uniqueId=" +key +"&platform=lddLogin"

? //fmt.Println(string(postData))

? resultCode, resultStr, err :=HttpPost(url, newheaderMap, strings.NewReader(postDataStr))

fmt.Println(resultCode)

if (err !=nil) {

fmt.Println(err)

}else {

fmt.Println(string(resultStr))

}

}

func httpDo() {

postString :=PostStruct{

CardNo:"2955313449",

? ? ? EquipmentNo:"9",

? ? ? EquipType:"0",

? ? ? ScreenSpec:"0",

? }

//postString.CardNo = "2955313449"

//postString.EquipmentNo = "9"

//postString.EquipType = "0"

//postString.ScreenSpec = "0"

//struct 到j(luò)son str

//{

// "cardNo": "2955313449",

// "equipmentNo": "9",

// "equipType": "0",

// "screenSpec": "0"

//}

? jsonPostStruct, err :=json.Marshal(postString)

if err !=nil {

fmt.Println("生成json字符串錯誤", err)

}

fmt.Println("================struct 到j(luò)son str==")

fmt.Println(string(jsonPostStruct))

//var jsonStr = []byte(string(jsonPostStruct))

? var jsonStr = []byte(`{"cardNo": "2955313449","equipmentNo": "9","equipType": "0","screenSpec": "0"}`)

// var jsonStr = []byte(`{

//? "cardNo": "2955313449",

//? "equipmentNo": "9",

//? "equipType": "0",

//? "screenSpec": "0"

//}`)

? fmt.Println(string(jsonStr))

//req, err := http.NewRequest("POST",

// "http://192.168.1.6:8777/v1/user/cardLogin",

// bytes.NewBuffer(jsonStr))

? req, err :=http.NewRequest("POST",

? ? ? "http://192.168.1.6:8777/v1/user/cardLogin",

? ? ? strings.NewReader(string(jsonPostStruct)))

if err !=nil {

// handle error

? ? ? println(err)

}

req.Header.Set("Content-Type", "application/json;charset=UTF-8")

// req.Header.Set("Content-Type", "application/json")

? client := &http.Client{}

resp, err :=client.Do(req)

defer resp.Body.Close()

fmt.Println("response Status:", resp.Status)

body, err :=ioutil.ReadAll(resp.Body)

if err !=nil {

// handle error

? ? ? fmt.Println(err)

}

fmt.Println(string(body))

}

/**

*/

func HttpPost(url string, headerMap map[string]string, read io.Reader) (string, string, error) {

//fmt.Println("url %s : postData %s", url, postData)

? req, err :=http.NewRequest("POST", url, read)

// strings.NewReader(postData))

? if err !=nil {

// handle error

? ? ? return "", "", err

? }

for k, v :=range headerMap {

fmt.Printf("k:[%v].v:[%v]\n", k, v)// 輸出k,v值

? ? ? req.Header.Set(k, v)

}

// req.Header.Set("Content-Type", "application/json")

? client := &http.Client{}

client.Timeout =time.Second *10

? resp, err :=client.Do(req)

defer resp.Body.Close()

if err !=nil {

return resp.Status, "", err

? }

fmt.Println("response Status:", resp.Status)

body, err :=ioutil.ReadAll(resp.Body)

if err !=nil {

return resp.Status, "", err

? }

fmt.Println(string(body))

return resp.Status, string(body), nil

}

func HttpGet(url string, headerMap map[string]string) (string, string, error) {

fmt.Println("url %s : postData %s", url)

req, err :=http.NewRequest("POST", url, nil)

if err !=nil {

return "", "", err

? }

for k, v :=range headerMap {

fmt.Printf("k:[%v].v:[%v]\n", k, v)// 輸出k,v值

? ? ? req.Header.Set(k, v)

}

// req.Header.Set("Content-Type", "application/json")

? client := &http.Client{}

resp, err :=client.Do(req)

defer resp.Body.Close()

if err !=nil {

return resp.Status, "", err

? }

fmt.Println("response Status:", resp.Status)

body, err :=ioutil.ReadAll(resp.Body)

if err !=nil {

return resp.Status, "", err

? }

fmt.Println(string(body))

return resp.Status, string(body), nil

}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末肛走,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子芙沥,更是在濱河造成了極大的恐慌锥累,老刑警劉巖蛾找,帶你破解...
    沈念sama閱讀 218,941評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件皮仁,死亡現(xiàn)場離奇詭異魂爪,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)哩盲,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,397評論 3 395
  • 文/潘曉璐 我一進(jìn)店門前方,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人廉油,你說我怎么就攤上這事惠险。” “怎么了抒线?”我有些...
    開封第一講書人閱讀 165,345評論 0 356
  • 文/不壞的土叔 我叫張陵班巩,是天一觀的道長。 經(jīng)常有香客問我嘶炭,道長抱慌,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,851評論 1 295
  • 正文 為了忘掉前任旱物,我火速辦了婚禮,結(jié)果婚禮上卫袒,老公的妹妹穿的比我還像新娘宵呛。我一直安慰自己,他們只是感情好夕凝,可當(dāng)我...
    茶點故事閱讀 67,868評論 6 392
  • 文/花漫 我一把揭開白布宝穗。 她就那樣靜靜地躺著,像睡著了一般码秉。 火紅的嫁衣襯著肌膚如雪逮矛。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,688評論 1 305
  • 那天转砖,我揣著相機(jī)與錄音须鼎,去河邊找鬼鲸伴。 笑死,一個胖子當(dāng)著我的面吹牛晋控,可吹牛的內(nèi)容都是我干的汞窗。 我是一名探鬼主播,決...
    沈念sama閱讀 40,414評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼赡译,長吁一口氣:“原來是場噩夢啊……” “哼仲吏!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起蝌焚,我...
    開封第一講書人閱讀 39,319評論 0 276
  • 序言:老撾萬榮一對情侶失蹤裹唆,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后只洒,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體许帐,經(jīng)...
    沈念sama閱讀 45,775評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,945評論 3 336
  • 正文 我和宋清朗相戀三年红碑,在試婚紗的時候發(fā)現(xiàn)自己被綠了舞吭。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,096評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡析珊,死狀恐怖羡鸥,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情忠寻,我是刑警寧澤惧浴,帶...
    沈念sama閱讀 35,789評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站奕剃,受9級特大地震影響衷旅,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜纵朋,卻給世界環(huán)境...
    茶點故事閱讀 41,437評論 3 331
  • 文/蒙蒙 一瓦堵、第九天 我趴在偏房一處隱蔽的房頂上張望审胚。 院中可真熱鬧,春花似錦、人聲如沸耐量。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,993評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽方仿。三九已至,卻和暖如春藏澳,著一層夾襖步出監(jiān)牢的瞬間仁锯,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,107評論 1 271
  • 我被黑心中介騙來泰國打工翔悠, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留业崖,地道東北人野芒。 一個月前我還...
    沈念sama閱讀 48,308評論 3 372
  • 正文 我出身青樓,卻偏偏與公主長得像腻要,于是被迫代替她去往敵國和親复罐。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,037評論 2 355

推薦閱讀更多精彩內(nèi)容