亚洲综合原千岁中文字幕_国产精品99久久久久久久vr_无码人妻aⅴ一区二区三区浪潮_成人h动漫精品一区二区三

主頁 > 知識庫 > golang語言http協議get拼接參數操作

golang語言http協議get拼接參數操作

熱門標簽:仙桃400電話辦理 湛江crm外呼系統排名 寧波語音外呼系統公司 重慶慶云企業400電話到哪申請 宿遷便宜外呼系統代理商 上海極信防封電銷卡價格 鄭州智能語音電銷機器人價格 地圖標注免費定制店 不封卡外呼系統

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

package main
import (
	"fmt"
	"net/url"
)
// Manage the HTTP GET request parameters
type GetRequest struct {
	urls url.Values
}
// Initializer
func (p *GetRequest) Init() *GetRequest {
	p.urls = url.Values{}
	return p
}
// Initialized from another instance
func (p *GetRequest) InitFrom(reqParams *GetRequest) *GetRequest {
	if reqParams != nil {
		p.urls = reqParams.urls
	} else {
		p.urls = url.Values{}
	}
	return p
}
// Add URL escape property and value pair
func (p *GetRequest) AddParam(property string, value string) *GetRequest {
	if property != ""  value != "" {
		p.urls.Add(property, value)
	}
	return p
}
// Concat the property and value pair
func (p *GetRequest) BuildParams() string {
	return p.urls.Encode()
}
func main() {
	init := new(GetRequest).Init()
	params := init.AddParam("market", "sh").AddParam("Inst","6000987").BuildParams()
	//params := init.AddParam("market", "sh")
	fmt.Println(params)
}

結果:

Inst=6000987market=sh

補充: golang常見字符串拼接通用處理方式

前言

我們在日常開發中,尤其是對接第三方登錄、支付、分享等功能時,時常需要對自己或接收到的數據進行一定的排序拼接后, 然后進行或加密或校驗的處理,雖然寫死順序可以解決問題,但代碼缺少了靈活性。

本文從通用性角度,以golang語言來處理一般情況下的字符串拼接問題。

目前已開發成專門的拼接工具go-join,歡迎使用并提出意見。

拼接處理

目前經常遇到的排序方式主要有以下兩種:

1、參數名ASCII碼從小到大排序

以下是微信開發者平臺的簽名要求:

簽名生成的通用步驟如下:

第一步,設所有發送或者接收到的數據為集合M,將集合M內非空參數值的參數按照參數名ASCII碼從小到大排序(字典序),使用URL鍵值對的格式(即key1=value1key2=value2…)拼接成字符串stringA。

特別注意以下重要規則:

◆ 參數名ASCII碼從小到大排序(字典序);

◆ 如果參數的值為空不參與簽名;

◆ 參數名區分大小寫;

◆ 驗證調用返回或微信主動通知簽名時,傳送的sign參數不參與簽名,將生成的簽名與該sign值作校驗。

◆ 微信接口可能增加字段,驗證簽名時必須支持增加的擴展字段

//JoinStringsInASCII 按照規則,參數名ASCII碼從小到大排序后拼接
//data 待拼接的數據
//sep 連接符
//onlyValues 是否只包含參數值,true則不包含參數名,否則參數名和參數值均有
//includeEmpty 是否包含空值,true則包含空值,否則不包含,注意此參數不影響參數名的存在
//exceptKeys 被排除的參數名,不參與排序及拼接
func JoinStringsInASCII(data map[string]string, sep string, onlyValues, includeEmpty bool, exceptKeys ...string) string {
 var list []string
 var keyList []string
 m := make(map[string]int)
 if len(exceptKeys) > 0 {
 for _, except := range exceptKeys {
  m[except] = 1
 }
 }
 for k := range data {
 if _, ok := m[k]; ok {
  continue
 }
 value := data[k]
 if !includeEmpty  value == "" {
  continue
 }
 if onlyValues {
  keyList = append(keyList, k)
 } else {
  list = append(list, fmt.Sprintf("%s=%s", k, value))
 }
 }
 if onlyValues {
 sort.Strings(keyList)
 for _,v := range keyList {
  list = append(list,data[v])
 }
 }else {
 sort.Strings(list)
 }
 return strings.Join(list, sep)
}

示例:

 data := make(map[string]string)
 data["appid"] = "wx_1234535"
 data["body"] = "test data"
 data["mch_id"] = "572836589"
 data["notify_url"] = "http://www.baidu.com"
 data["trade_type"] = "MWEB"
 data["spbill_create_ip"] = "192.169.0.1"
 data["total_fee"] = "100"
 data["out_trade_no"] = "2745890486870"
 data["nonce_str"] = "kdjskgjokghdk"
 data["sign"] = "signData"
 log.Println("str :", JoinStringsInASCII(data, "", false, false, "sign"))
 log.Println("str2 :", JoinStringsInASCII(data, "", true, false, "sign"))

示例結果:

str : appid=wx_1234535body=test datamch_id=572836589nonce_str=kdjskgjokghdknotify_url=http://www.baidu.comout_trade_no=2745890486870spbill_create_ip=192.169.0.1total_fee=100trade_type=MWEB
str2 : wx_1234535test data572836589kdjskgjokghdkhttp://www.baidu.com2745890486870192.169.0.1100MWEB

2.按照特定的參數順序拼接

//JoinStringsInOrder 數名按固定順序排列后拼接
//data 待拼接的數據
//sep 連接符
//onlyValues 是否只包含參數值,true則不包含參數名,否則參數名和參數值均有
//orders 按照順序的參數名,沒有的不參與拼接
func JoinStringsInOrder(data map[string]string, sep string,onlyValues bool, orders ...string) string {
 var list []string
 for _, key := range orders {
 if _,ok := data[key];!ok {
  continue
 }
 if onlyValues {
  list = append(list, data[key])
 }else {
  list = append(list, fmt.Sprintf("%s=%s", key, data[key]))
 }
 }
 return strings.Join(list, sep)
}

示例:

log.Println("str3 :", JoinStringsInOrder(data, "", false, "appid","body","mch_id","notify_url"))

log.Println("str4 :", JoinStringsInOrder(data, "", true, "appid","body","mch_id","notify_url"))

示例結果:

str3 : appid=wx_1234535body=test datamch_id=572836589notify_url=http://www.baidu.com

str4 : wx_1234535test data572836589http://www.baidu.com

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

您可能感興趣的文章:
  • golang gopm get -g -v 無法獲取第三方庫的解決方案
  • golang實現各種情況的get請求操作
  • Golang發送http GET請求的示例代碼
  • Golang執行go get私有庫提示"410 Gone" 的問題及解決辦法
  • golang使用http client發起get和post請求示例
  • 完美解決golang go get私有倉庫的問題

標簽:安康 遼寧 青海 儋州 海南 西雙版納 物業服務 電子產品

巨人網絡通訊聲明:本文標題《golang語言http協議get拼接參數操作》,本文關鍵詞  golang,語言,http,協議,get,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《golang語言http協議get拼接參數操作》相關的同類信息!
  • 本頁收集關于golang語言http協議get拼接參數操作的相關信息資訊供網民參考!
  • 推薦文章
    久久国产影视免费精品| 91麻豆精品国产片在线观看| 亚洲精品永久一区| 日本伦理黄色大片在线观看网站| 国产伦理精品| 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 亚州视频一区二区| 久久国产一久久高清| 色综合久久天天综合| 国产国语在线播放视频| 欧美爱色| 精品久久久久久中文| 美女免费毛片| 免费的黄视频| 青青青草视频在线观看| 日韩欧美一二三区| 亚洲 国产精品 日韩| 国产亚洲精品成人a在线| 好男人天堂网 久久精品国产这里是免费 国产精品成人一区二区 男人天堂网2021 男人的天堂在线观看 丁香六月综合激情 | 成人av在线播放| 青青久久国产成人免费网站| 精品久久久久久影院免费| 成人在免费观看视频国产| 青草国产在线观看| 91麻豆精品国产自产在线观看一区| 91麻豆精品国产自产在线| 久久国产精品自线拍免费| 精品视频在线看 | 亚洲精品中文字幕久久久久久| 欧美国产日韩久久久| 久久国产一久久高清| 天天做日日爱| 精品久久久久久中文| 日韩在线观看网站| 国产福利免费观看| 日韩中文字幕在线亚洲一区| 国产网站免费视频| 成人影院一区二区三区| 欧美大片一区| 国产视频一区在线| 亚洲精品影院| 久久国产一区二区| 精品国产亚洲人成在线| 久久99这里只有精品国产| 成人影院一区二区三区| 亚洲第一色在线| 国产麻豆精品高清在线播放| 国产伦精品一区二区三区无广告| 久久国产一区二区| 成人免费观看视频| 亚州视频一区二区| 精品国产亚洲一区二区三区| 精品视频在线观看一区二区| 青青久久精品国产免费看| 亚洲第一页色| 91麻豆精品国产自产在线| 亚洲wwwwww| 九九久久99综合一区二区| 好男人天堂网 久久精品国产这里是免费 国产精品成人一区二区 男人天堂网2021 男人的天堂在线观看 丁香六月综合激情 | 你懂的国产精品| 国产高清视频免费观看| 精品视频在线看| 亚欧视频在线| 国产网站在线| 韩国三级香港三级日本三级la | 国产欧美精品| 国产麻豆精品高清在线播放| 好男人天堂网 久久精品国产这里是免费 国产精品成人一区二区 男人天堂网2021 男人的天堂在线观看 丁香六月综合激情 | 国产一区二区高清视频| 青青久久精品| 九九久久国产精品| 日韩专区一区| 日韩免费在线| 久久国产精品永久免费网站| 超级乱淫伦动漫| 韩国三级一区| 国产成人啪精品| 999精品影视在线观看| 国产成+人+综合+亚洲不卡 | 国产视频网站在线观看| 亚飞与亚基在线观看| 精品视频在线观看免费| 日本在线不卡视频| 99色视频| 九九九国产| 国产伦久视频免费观看视频| 亚欧视频在线| 国产网站免费| 国产精品12| 国产麻豆精品hdvideoss| 欧美一区二区三区性| 美女免费精品高清毛片在线视| 国产a视频| 国产高清视频免费观看| 国产不卡在线观看| 欧美国产日韩在线| 久久国产精品永久免费网站| 久久精品欧美一区二区| 久久久成人影院| 久久国产精品自由自在| 精品视频一区二区三区免费| 久久久久久久免费视频| 日韩av成人| 国产一区二区精品| 日本伦理片网站| 夜夜操网| 精品视频在线观看免费| 国产精品免费精品自在线观看| 韩国三级视频网站| 色综合久久天天综线观看| 欧美另类videosbestsex高清| 亚洲 欧美 成人日韩| 九九久久国产精品大片| 日韩女人做爰大片| 成人a大片在线观看| 成人在激情在线视频| 亚洲精品久久玖玖玖玖| 精品国产一级毛片| 日韩av片免费播放| 久久精品道一区二区三区| 日本特黄特色aaa大片免费| 韩国毛片免费大片| 中文字幕一区二区三区精彩视频| 日本特黄特色aaa大片免费| 亚洲精品中文字幕久久久久久| 四虎久久影院| 成人a级高清视频在线观看| 一级毛片视频播放| 国产成人精品影视| 国产韩国精品一区二区三区| 日本伦理黄色大片在线观看网站| 精品国产一区二区三区久| 香蕉视频亚洲一级| 国产伦精品一区二区三区在线观看 | 国产视频在线免费观看| 精品国产一区二区三区久久久狼| 四虎影视久久久| 国产激情一区二区三区| 国产国语在线播放视频| 99久久精品国产国产毛片| 天天做日日爱| 欧美电影免费| 色综合久久天天综线观看| 欧美激情一区二区三区在线播放 | 久久国产影院| 精品视频一区二区三区免费| 韩国三级一区| 九九热国产视频| 亚洲第一页乱| 欧美激情一区二区三区视频高清 | 日韩av成人| 一级女人毛片人一女人| 色综合久久天天综合| 天天做日日干| 国产一区免费在线观看| 亚飞与亚基在线观看| 国产激情一区二区三区| 国产不卡在线看| 亚洲精品久久玖玖玖玖| 四虎影视库| 尤物视频网站在线| 九九九国产| 欧美日本免费| 色综合久久天天综合观看| 青草国产在线观看| 国产不卡福利| 国产极品精频在线观看| 91麻豆爱豆果冻天美星空| 韩国三级视频网站| 午夜家庭影院| 国产精品12| 韩国毛片| 久久99青青久久99久久| 国产美女在线观看| 毛片的网站| 九九干| 久久福利影视| 欧美a级大片| 天天做日日干| 国产一区二区精品| a级黄色毛片免费播放视频| 久久久久久久网| 美女免费毛片| 日韩男人天堂| 久久99青青久久99久久| 欧美爱爱网| 黄视频网站在线免费观看| 久久精品免视看国产成人2021| 九九久久国产精品| 韩国三级香港三级日本三级la | 精品视频免费看| 欧美激情在线精品video| 欧美a级v片不卡在线观看| 中文字幕一区二区三区 精品| 日韩一级黄色片| 日韩中文字幕在线观看视频| 免费毛片基地| 国产a视频| 亚洲天堂在线播放| 国产福利免费观看|