Rumah > Soal Jawab > teks badan
最近遇到一个怪异的url问题,我是在公司wiki上复制的url(类似http://baidu.com/),然后加上需要传给平台的参数,用AFNetworking的post请求执行该url。然后报:Invalid parameter not satisfying: URLString
。
但是url只有%、&、字母数字没有其他特殊字符。在执行中断点打印该url,放到浏览器中http
后面少了一个:
,手动加上:
请求正确。在程序中继续执行,报上面的错误,这是再复制打印的url到浏览器中,没有:
丢失的情况,请求正确。
之前遇到过一次这种情况,手动去打url,解决了问题。但是现在好像不管用了,而且我很纳闷的是为什么会有这个问题,搞不明白,大神指点指点啊:0—0:
迷茫2017-05-02 09:20:57
Oh, anda menghantar parameter dalam URL Adakah parameter itu juga URL?
Dalam kes ini, anda perlu URLEncode (encode) URL parameter Terdapat kod, ia adalah URLEncode yang sangat mudah
Operasi pengekodan akan menukar aksara khas yang menjejaskan integriti URL kepada pengekodan peratus supaya ia tidak hilang.
Memandangkan URL menyokong 26 huruf Inggeris, nombor dan beberapa aksara khas, apabila URL mengandungi aksara URL bukan standard, ia perlu dikodkan. iOS menyediakan fungsi stringByAddingPercentEscapesUsingEncoding untuk mengekodkan aksara Cina dan beberapa aksara khas Walau bagaimanapun, fungsi stringByAddingPercentEscapesUsingEncoding tidak sempurna dan tidak sah untuk beberapa aksara khas. Untuk aksara ini, anda boleh menggunakan fungsi CFURLCreateStringByteAddingPercentEscapes
adalah seperti berikut:
- (NSString *)URLEncodedString:(NSString*)resource {
CFStringRef url = CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault, (CFStringRef)resource, NULL, CFSTR("!*'();:@&=+$,/?%#[]"), kCFStringEncodingUTF8); // for some reason, releasing this is disasterous
NSString *result = (__bridge NSString *)url;
// [result autorelease];
return result;
}
Semoga berjaya.