最近遇到一个怪异的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
ああ、パラメータを URL に渡していますね。パラメータも URL ですか?
この場合、パラメータのURLをURLEncode(エンコード)する必要がありますが、非常に簡単なURLEncodeです
。エンコード操作では、URL の整合性に影響を与える特殊文字が失われないようにパーセント エンコードに変換されます。
URL は 26 個の英字、数字、およびいくつかの特殊文字をサポートしているため、URL に標準以外の URL 文字が含まれている場合は、エンコードする必要があります。 iOS では、中国語と一部の特殊文字をエンコードする関数 stringByAddingPercentEscapesUsingEncoding が提供されていますが、stringByAddingPercentEscapesUsingEncoding の関数は完全ではなく、一部の特殊文字には無効です。これらの文字には、CFURLCreateStringByteAddingPercentEscapes 関数を使用できます
以下の通り:
リーリー頑張ってください。