1

NSMutableURLRequestPHPサーバーにデータを送信するために使用しています。これは私がリクエストを作成する方法です:

NSMutableURLRequest *request = [[[NSMutableURLRequest alloc] init] autorelease];
[request setURL:[NSURL URLWithString:urlString]];
[request setHTTPMethod:@"POST"];
NSString *boundary = @"---------------------------14737809831466499882746641449";
NSString *contentType = [NSString stringWithFormat:@"multipart/form-data; boundary=%@", boundary];
[request addValue:contentType forHTTPHeaderField:@"Content-Type"];
[body appendData:[[NSString stringWithFormat:@"--%@\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"%@\"\r\n\r\n", key] dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[[NSString stringWithString:[@"whatever" objectForKey:@"message"]] dataUsingEncoding:NSUTF8StringEncoding]];  //converting strings to NSData
[body appendData:[textParams objectForKey:key]];
[body appendData:[@"\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
[request setHTTPBody:body];

私の質問は、サーバーが受信したデータの形式は何ですか? IE $_POST['message']、それはバイナリ、16 進数、base64、通常の文字列でしょうか?

4

1 に答える 1

1

「メッセージ」値は文字列として渡されます。PHP では、次のことができます。

$message = $_POST['message'];

あなたのコードには問題がありますが。投稿するテキスト値ごとに次の行が必要です。

[body appendData:[[NSString stringWithFormat:@"--%@\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"%@\"\r\n\r\n", @"message"] dataUsingEncoding:NSUTF8StringEncoding]];
NSString *text = ... // the text value to post for "message"
[body appendData:[text dataUsingEncoding:NSUTF8StringEncoding];  //converting strings to NSData
[body appendData:[@"\r\n" dataUsingEncoding:NSUTF8StringEncoding]];

objectForKey:文字列リテラルを呼び出そうとしました。そんなことはできません。また、追加していましtextParamsた。それがどうあるべきかはわかりませんが、投稿する値ごとに上記の行が必要です。おそらく、これらのパラメーターは の一部である必要がありtextます。

于 2013-03-21T16:21:29.167 に答える