1

NSURLRequestたとえば、文字列に % が含まれるたびに POST を実行すると問題が発生します。

私のウェブサイトでは、エンコーディングが有効であることがわかりますISO-8859-1,utf-8Accept-Charset、何らかの理由で「%&$」などを含むと POST が機能しません。UTF-8 エンコーディングではエンコードされないようです。以下のコードで何か間違ったことをしていますか?

NSData *postData = [credentials dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:NO];
NSString *postLength = [NSString stringWithFormat:@"%d", [postData length]];
NSMutableURLRequest *request = [[[NSMutableURLRequest alloc] init] autorelease];
[request setURL:[NSURL URLWithString:@"http://www.website.com/login.php"]];
[request setHTTPMethod:@"POST"];
[request setValue:postLength forHTTPHeaderField:@"Content-Length"];
[request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];
[request setHTTPBody:postData];
4

1 に答える 1

0

「Content-Transfer-Encoding」を聞きたいと思うかもしれません。

コンテンツ タイプ: テキスト/プレーン。文字セット=UTF-8

Content-Transfer-Encoding: バイナリ

または、これらの文字に特に問題がある場合

コンテンツ転送エンコーディング: base64

編集:「application/x-www-form-urlencoded」は「%」記号を発生させます。

于 2010-01-26T20:18:50.007 に答える