我想在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]];
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。