0

基本的に、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はそのインスタンスにあるようです。

4

1 に答える 1

2

いくつかのこと。あなたがそれを得ている理由は最初の行のためです:

ASIFormDataRequest *request = [ASIHTTPRequest requestWithURL:urlImg];

タイプASIHTTPRequestの新しいオブジェクトを作成しています。あなたがする必要があります:

ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:urlImg];

また、RequestMethodは自動的に行われるため、設定する必要はありません。最後に、サービスで本当にXMLドキュメントをアップロードする必要がある場合。そうすると、FormDataを使用できなくなります。フォーマットデータは、HTMLフォームに一致するデータをアップロードする場合にのみ使用され、マルチパートフォームまたはURLエンコードされたデータでエンコードされます。XMLが必要な場合は、自分でXMLドキュメントを作成し、そのドキュメントからデータを投稿する必要があります。

于 2010-06-28T17:04:00.007 に答える