我正在使用NSMutableURLRequest
将数据发送到我的PHP服务器。这就是我创建请求的方式:
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];
我的问题是,服务器收到的数据格式是什么? I.E. $_POST['message']
,是二进制,十六进制,base64,常规字符串吗?
答案 0 :(得分:1)
“message”值将以字符串形式出现。在您的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
的一部分。