基本上我正在尝试使用ASIFormDataRequest上传图像。这是我的以下代码
ASIFormDataRequest *request = [ASIHTTPRequest requestWithURL:urlImg];
[request setRequestMethod:@"POST"];
[request addRequestHeader:@"Content-Type" value:@"application/xml"];
[request setDelegate:self];
[request setTimeOutSeconds:500];
NSData *imageData = UIImagePNGRepresentation([info objectForKey:@"UIImagePickerControllerOriginalImage"]);
[request setData:imageData forKey:@"media"];
[request startAsynchronous];
基本上我的应用程序崩溃并给我以下错误:
[ASIHTTPRequest setData:forKey:]: unrecognized selector sent to instance 0x8880db0
2010-06-28 12:33:49.803 vdq[7658:207] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[ASIHTTPRequest setData:forKey:]: unrecognized selector sent to instance 0x8880db0'
不确定原因,但方法setData似乎在该实例中。
答案 0 :(得分:2)
一些事情。你得到这个的原因是因为第一行:
ASIFormDataRequest *request = [ASIHTTPRequest requestWithURL:urlImg];
正在创建ASIHTTPRequest类型的新对象。你需要这样做:
ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:urlImg];
此外,您无需设置RequestMethod,因为这是自动完成的。最后,如果服务确实需要上传XML文档。那么您将无法使用FormData。格式数据仅在您上载匹配和HTML表单的数据并且使用多部分表单或URL编码数据进行编码时才会生成。如果需要XML,则需要自己构建XML文档,然后发布该文档中的数据。