詳細(xì)解析幾個(gè)和網(wǎng)絡(luò)請(qǐng)求有關(guān)的類(lèi)(七) —— URL數(shù)據(jù)的編碼和解碼(三)

版本記錄

版本號(hào) 時(shí)間
V1.0 2018.03.11

前言

我們做APP發(fā)起網(wǎng)絡(luò)請(qǐng)求蹂午,一般都是使用框架窑业,這些框架的底層也都是蘋(píng)果的API,接下來(lái)幾篇就一起來(lái)看一下和網(wǎng)絡(luò)有關(guān)的幾個(gè)類(lèi)困后。感興趣的可以看上面幾篇文章乐纸。
1. 詳細(xì)解析幾個(gè)和網(wǎng)絡(luò)請(qǐng)求有關(guān)的類(lèi) (一) —— NSURLSession
2. 詳細(xì)解析幾個(gè)和網(wǎng)絡(luò)請(qǐng)求有關(guān)的類(lèi)(二) —— NSURLRequest和NSMutableURLRequest
3. 詳細(xì)解析幾個(gè)和網(wǎng)絡(luò)請(qǐng)求有關(guān)的類(lèi)(三) —— NSURLConnection
4. 詳細(xì)解析幾個(gè)和網(wǎng)絡(luò)請(qǐng)求有關(guān)的類(lèi)(四) —— NSURLSession和NSURLConnection的區(qū)別
5. 詳細(xì)解析幾個(gè)和網(wǎng)絡(luò)請(qǐng)求有關(guān)的類(lèi)(五) —— 關(guān)于NSURL加載系統(tǒng)(一)
6. 詳細(xì)解析幾個(gè)和網(wǎng)絡(luò)請(qǐng)求有關(guān)的類(lèi)(六) —— 使用NSURLSession(二)

回顧

上一篇主要描述了NSURLSession的使用,這一篇主要說(shuō)一下URL數(shù)據(jù)的編碼和解碼摇予。


Encoding and Decoding URL Data - URL數(shù)據(jù)的編碼和解碼

要對(duì)URL字符串的一部分進(jìn)行百分比編碼汽绢,請(qǐng)使用NSString方法stringByAddingPercentEncodingWithAllowedCharacters:,為URL組件或子組件傳遞適當(dāng)?shù)淖址?/p>

重要提示:請(qǐng)勿使用stringByAddingPercentEncodingWithAllowedCharacters:對(duì)整個(gè)URL字符串進(jìn)行編碼侧戴,因?yàn)槊總€(gè)URL組件或子組件對(duì)于哪些字符有效具有不同的規(guī)則宁昭。

例如,要將包含在URL片段中的UTF-8字符串進(jìn)行百分比編碼酗宋,請(qǐng)執(zhí)行以下操作:

NSString *originalString = @"color-#708090";
NSCharacterSet *allowedCharacters = [NSCharacterSet URLFragmentAllowedCharacterSet];
NSString *percentEncodedString = [originalString stringByAddingPercentEncodingWithAllowedCharacters:allowedCharacters];
NSLog(@"%@", percentEncodedString"); // prints "color-%23708090"
let originalString = "color-#708090"
let allowedCharacters = NSCharacterSet.urlFragmentAllowed
let encodedString = originalString.addingPercentEncoding(withAllowedCharacters: allowedCharacters)
print(encodedString!) // prints "color-%23708090"

如果要解碼百分比編碼的URL組件积仗,請(qǐng)使用 NSURLComponents將URL拆分為其組成部分并訪問(wèn)相應(yīng)的屬性。

例如本缠,要獲取百分比編碼的URL片段的UTF-8字符串值斥扛,請(qǐng)執(zhí)行以下操作:

NSURL *URL = [NSURL URLWithString:@"https://example.com/#color-%23708090"];
NSURLComponents *components = [NSURLComponents componentsWithURL:URL resolvingAgainstBaseURL:NO];
NSString *fragment = components.fragment;
NSLog(@"%@", fragment); // prints "color-#708090"
let url = URL(string: "https://example.com/#color-%23708090")!
let components = URLComponents(url: url, resolvingAgainstBaseURL: true)!
let fragment = components.fragment!
print(fragment) // prints "color-#708090"

后記

本篇主要講述了URL數(shù)據(jù)的編碼和解碼。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末丹锹,一起剝皮案震驚了整個(gè)濱河市稀颁,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌楣黍,老刑警劉巖匾灶,帶你破解...
    沈念sama閱讀 206,839評(píng)論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異租漂,居然都是意外死亡阶女,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,543評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門(mén)哩治,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)秃踩,“玉大人,你說(shuō)我怎么就攤上這事业筏°狙睿” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 153,116評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵蒜胖,是天一觀的道長(zhǎng)消别。 經(jīng)常有香客問(wèn)我,道長(zhǎng)台谢,這世上最難降的妖魔是什么寻狂? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,371評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮朋沮,結(jié)果婚禮上蛇券,老公的妹妹穿的比我還像新娘。我一直安慰自己樊拓,他們只是感情好纠亚,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,384評(píng)論 5 374
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著骑脱,像睡著了一般菜枷。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上叁丧,一...
    開(kāi)封第一講書(shū)人閱讀 49,111評(píng)論 1 285
  • 那天啤誊,我揣著相機(jī)與錄音,去河邊找鬼拥娄。 笑死蚊锹,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的稚瘾。 我是一名探鬼主播牡昆,決...
    沈念sama閱讀 38,416評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了丢烘?” 一聲冷哼從身側(cè)響起柱宦,我...
    開(kāi)封第一講書(shū)人閱讀 37,053評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎播瞳,沒(méi)想到半個(gè)月后掸刊,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,558評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡赢乓,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,007評(píng)論 2 325
  • 正文 我和宋清朗相戀三年忧侧,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片牌芋。...
    茶點(diǎn)故事閱讀 38,117評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡蚓炬,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出躺屁,到底是詐尸還是另有隱情肯夏,我是刑警寧澤,帶...
    沈念sama閱讀 33,756評(píng)論 4 324
  • 正文 年R本政府宣布楼咳,位于F島的核電站熄捍,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏母怜。R本人自食惡果不足惜余耽,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,324評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望苹熏。 院中可真熱鬧碟贾,春花似錦、人聲如沸轨域。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,315評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)干发。三九已至朱巨,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間枉长,已是汗流浹背冀续。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,539評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留必峰,地道東北人洪唐。 一個(gè)月前我還...
    沈念sama閱讀 45,578評(píng)論 2 355
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像吼蚁,于是被迫代替她去往敵國(guó)和親凭需。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,877評(píng)論 2 345

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