在iOS中使用NSURLConnection的表单数据请求

我想在iOS中使用NSURLConnection制作http表单帖子.我在 HTML表单中有两个表单字段和一个文件上载选项.当我使用NSURLConnection做同样的事情时,我没有得到回应.
Nsstring *urlString = @"http://url/test.PHP";
NSMutableuRLRequest *request = [[NSMutableuRLRequest alloc] init];
[request setURL:[NSURL URLWithString:urlString]];
[request setHTTPMethod:@"POST"];

Nsstring *contentType = [Nsstring stringWithFormat:@"multipart/form-data"];
[request addValue:contentType forHTTPHeaderField: @"Content-Type"];

NSMutableData *body = [NSMutableData data];
[body appendData:[[Nsstring stringWithString:@"Content-disposition: form-data; name=\"file\"; filename=\"myphoto.png\"rn"] dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[[Nsstring stringWithString:@"Content-Type: application/octet-streamrnrn"] dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:filedata];
[body appendData:[[Nsstring stringWithFormat:@"&s=YL4e6ouKirNDgCk0xV2HKixt&hw=141246514ytdjadh"] dataUsingEncoding:NSUTF8StringEncoding]];
[request setHTTPBody:body];

NSData *returnData = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
Nsstring *returnString = [[Nsstring alloc] initWithData:returnData encoding:NSUTF8StringEncoding];
NSLog(@"RETURNED:%@",returnString);

但是,当我使用ASIHTTPRequest并编写以下代码时,它正在工作,我正在收到回复.

ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:[NSURL URLWithString:@"http://url/test.PHP"]];
[request setPostValue:@"YL4e6ouKirNDgCk0xV2HKixt&hw" forKey:@"ssf"];
[request setPostValue:@"141246514ytdjadh" forKey:@"sds"];
[request setData:filedata withFileName:@"myphoto.png" andContentType:@"image/jpeg"  forKey:@"file"];
[request startSynchronous];

NSError *error = [request error];
if (!error) {
    Nsstring *response = [request responseString];
    NSLog(@"response:%@",response);
}

任何人都可以告诉我NSURLConnection部分我做错了什么?

解决方法

您没有复制该链接的示例.在该教程中,HTTPBody参数应该是NSData的实例,而不是Nsstring.
[request setHTTPMethod:@"POST"]; 
Nsstring *myString = [Nsstring stringWithFormat:@"value1=test3&value2=test"];
[request setHTTPBody:[myString dataUsingEncoding:NSUTF8StringEncoding]];

相关文章

当我们远离最新的 iOS 16 更新版本时,我们听到了困扰 Apple...
欧版/美版 特别说一下,美版选错了 可能会永久丧失4G,不过只...
一般在接外包的时候, 通常第三方需要安装你的app进行测...
前言为了让更多的人永远记住12月13日,各大厂都在这一天将应...