2011年2月15日火曜日

NSURLConnectionに渡すURLはきちんとエンコードしてから渡すこと

iOS SDKの話。ふつうにMac OS Xでもそうなのかもしれないけど。

NSMutableURLRequest *req = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:url]];
[req setHTTPMethod:method]; self.URLconnection = [NSURLConnection connectionWithRequest:req delegate:self];
みたいな感じでURLを渡すと、そのURLのなかみを取ってきてくれるのがNSURLConnectionなんですが。SafariのURL表示窓がURLエンコードをしないで表示しているからって、requestwithURLのなかみに半角スペースや全角文字をそのままいれると"bad URL"と言われてエラーになります。

日本語やスペースのある文字列をURLエンコードするメソッドがビシーッと用意されているので、それをバキーッとつかうこと。

[hogehoge stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]
NSUTF8以下の引数は、相手の文字コードにあわせて適宜書き換える。さいきんはUTF-8が多いよね。

0 件のコメント:

コメントを投稿