http請求url參數(shù)包含+號稠炬,被解析為空格

// 接口URL+模板調(diào)用方法,構(gòu)成調(diào)用的完整URL
String apiUrl = configInfo.getUrl() + patternInfo.getInvokeMethod();
HttpPost method = new HttpPost(apiUrl);
//處理+號問題粹庞。+號轉(zhuǎn)換為%2B
request = request.replace("+", "%2B");
JSONObject jsonObject = JSON.parseObject(request);

資料.png

以下轉(zhuǎn)自:https://www.cnblogs.com/gzchenjiajun-php/articles/4841529.html

url之所以要編碼痘绎,不外乎幾個原因泉哈,比如:url中某些字符會引起歧義蛉幸、url參數(shù)中含有隱私數(shù)據(jù)、url中參數(shù)中含有中文(url編碼格式采用ascii而非unicode)等丛晦。

一奕纫、參數(shù)字符串
url參數(shù)字符串中使用key=value鍵值對這樣的形式來傳遞參數(shù),鍵值對之間以&符號分隔烫沙,比如:/ex?i=mm_1_2_3& cb=jsonp_callback匹层。如果value字符串中包含了=或者&,那么就會造成接收url的服務器解析錯誤锌蓄,因此升筏,必須對會引起歧義 的符號=和&進行轉(zhuǎn)義,即對其進行編碼瘸爽。
典型的url格式如下:

http://www.jbxue.com:80/ex?i=mm_35055626_3484594_13482142&cb=jsonp_callback_7498#nose
scheme:http://
authority:www.jbxue.com:80
path:/ex
query:?i=mm_35055626_3484594_13482142&cb=jsonp_callback
fragment:#nose

二您访、編解碼字符
rfc3986規(guī)定url中只允許包含英文字母(a-za-z)、數(shù)字(0-9)剪决、4個特殊字符(-灵汪、_檀训、.、~)以及所有保留字符(比如:/享言、?峻凫、 []、@等)览露。rfc3986對url編碼問題做了詳細建議荧琼,指出了哪些字符需要編碼才不會引起url語義歧義,以及對這些字符編碼的原因肛循。
url可以劃分為若干組件铭腕,比如:協(xié)議、主機多糠、路徑等累舷,保留字符中有些就是用作分隔不同組件的,比如:冒號用于分隔協(xié)議和主機夹孔,/用于分隔主機和路徑被盈,?用于分隔路徑和查詢參數(shù)等,還有一些字符用于每個組件內(nèi)起到分隔作用搭伤,比如:=用于分隔查詢參數(shù)中的key=value只怎,&用于分隔查詢參數(shù)中的多個鍵值對等。當組件中的普通數(shù)據(jù)包含這些特殊字符使怜俐,需要對其進行編碼身堡。
rfc3986中指定保留字符包括:!、*拍鲤、'贴谎、()、;季稳、:擅这、@、&景鼠、=仲翎、+、$铛漓、,溯香、/、?浓恶、#逐哈、[],此外问顷,還有一些字符也不能直接出現(xiàn)在 url中而需要編碼昂秃,比如:空格禀梳、引號、<>肠骆、#算途、%(用作編碼時使用的特殊字符)、{}蚀腿、|嘴瓤、\、^莉钙、[]廓脆、`、~等磁玉。
總之停忿,url中如果出現(xiàn)非字母和數(shù)字字符時,就去查一下rfc3986文檔以確認是否需要編碼蚊伞,而不是靠臆測席赂。

三、編解碼方式
url編碼(url encoding)也稱為百分號編碼(percent-encoding)时迫,即其使用百分號(%)加上兩位字符(0123456789abcdef)來代 表一個字節(jié)的十進制形式(即被編碼字符)颅停,其實就是用%+兩個十六進制字符來表示一個字符。url編碼默認使用的字符集是ascii掠拳,例如:字符a在 ascii碼中對應的十六進制是0x61(十進制是97)癞揉,那么url編碼后得到的就是%61。實際中溺欧,字符a是不需要編碼的烧董。
對于非ascii字符,需要使用ascii字符集的超集進行編碼得到相應的字節(jié)胧奔,然后對每個字節(jié)執(zhí)行百分號編碼。
對于unicode字符预吆,rfc文檔建議使用utf-8對其進行編碼得到相應的字節(jié)龙填,然后對每個字節(jié)執(zhí)行百分號編碼。例如:“中文”使用utf-8字符集 得到的字節(jié)為0xe4拐叉、0xb8岩遗、0xad、0xe6凤瘦、0x96宿礁、0x87,經(jīng)過url編碼之后得到%e4蔬芥、%b8梆靖、%ad控汉、%e6、%96返吻、%87姑子。

各種語言都需要編寫自己對應的編碼和解碼函數(shù),c/c++的可以參見這里测僵。此處街佑,以javascript為例說明之,javascript中提供了3對函數(shù)用于對url進行編碼和解碼捍靠,分別是escape/unescape沐旨、encodeuricomponent/decodeuricomponent、encodeuri/decodeuri榨婆。

escape編碼基本已經(jīng)廢棄磁携,后兩者使用utf-8對非ascii字符進行編碼,然后再進行百分號編碼纲辽,這是rfc推薦使用的方式颜武。

encodeuricomponent和encodeuri區(qū)別在于適用場合不同:encodeuricomponent被用作對uri的一個組件進行編碼,而encodeuri被用作對一個完整的uri進行編碼拖吼。
二者編碼字符范圍不一樣鳞上,即前者比后者范圍大。附上三者無需編解碼的字符范圍作為結(jié)束:

(1)escape(69個):吊档、/篙议、@、+怠硼、-鬼贱、.、_香璃、0-9这难、a-z、a-z
(2)encodeuricomponent(71個):!葡秒、'姻乓、()、
眯牧、-蹋岩、.、学少、~剪个、0-9、a-z版确、a-z
(3)encodeuri(82個):!扣囊、#乎折、$、&如暖、'笆檀、()、*盒至、+酗洒、,、/枷遂、:樱衷、;、=酒唉、?矩桂、@、-痪伦、.侄榴、
、~网沾、0-9癞蚕、a-z、a-z

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末辉哥,一起剝皮案震驚了整個濱河市桦山,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌醋旦,老刑警劉巖恒水,帶你破解...
    沈念sama閱讀 222,378評論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異饲齐,居然都是意外死亡钉凌,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,970評論 3 399
  • 文/潘曉璐 我一進店門捂人,熙熙樓的掌柜王于貴愁眉苦臉地迎上來御雕,“玉大人,你說我怎么就攤上這事先慷。” “怎么了咨察?”我有些...
    開封第一講書人閱讀 168,983評論 0 362
  • 文/不壞的土叔 我叫張陵论熙,是天一觀的道長。 經(jīng)常有香客問我摄狱,道長脓诡,這世上最難降的妖魔是什么无午? 我笑而不...
    開封第一講書人閱讀 59,938評論 1 299
  • 正文 為了忘掉前任,我火速辦了婚禮祝谚,結(jié)果婚禮上宪迟,老公的妹妹穿的比我還像新娘。我一直安慰自己交惯,他們只是感情好次泽,可當我...
    茶點故事閱讀 68,955評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著席爽,像睡著了一般意荤。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上只锻,一...
    開封第一講書人閱讀 52,549評論 1 312
  • 那天玖像,我揣著相機與錄音,去河邊找鬼齐饮。 笑死捐寥,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的祖驱。 我是一名探鬼主播握恳,決...
    沈念sama閱讀 41,063評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼羹膳!你這毒婦竟也來了睡互?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,991評論 0 277
  • 序言:老撾萬榮一對情侶失蹤陵像,失蹤者是張志新(化名)和其女友劉穎就珠,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體醒颖,經(jīng)...
    沈念sama閱讀 46,522評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡妻怎,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,604評論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了泞歉。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片逼侦。...
    茶點故事閱讀 40,742評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖腰耙,靈堂內(nèi)的尸體忽然破棺而出榛丢,到底是詐尸還是另有隱情,我是刑警寧澤挺庞,帶...
    沈念sama閱讀 36,413評論 5 351
  • 正文 年R本政府宣布晰赞,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏掖鱼。R本人自食惡果不足惜然走,卻給世界環(huán)境...
    茶點故事閱讀 42,094評論 3 335
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望戏挡。 院中可真熱鬧芍瑞,春花似錦、人聲如沸褐墅。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,572評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽掌栅。三九已至秩仆,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間猾封,已是汗流浹背澄耍。 一陣腳步聲響...
    開封第一講書人閱讀 33,671評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留晌缘,地道東北人齐莲。 一個月前我還...
    沈念sama閱讀 49,159評論 3 378
  • 正文 我出身青樓,卻偏偏與公主長得像磷箕,于是被迫代替她去往敵國和親选酗。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,747評論 2 361

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