4

サーバーに投稿したい画像をJSONファイルに追加しようとしています。次のコードを使用していますが、Invalid type in JSON write (NSConcreteMutableData)エラーが発生し続けます。コードは

NSDictionary *parameter = [[NSDictionary alloc]init];
NSData *imageData = UIImagePNGRepresentation(imageView.image);
parameter = @{@"body":@"Hi",@"image":imageData};

また、私はAFNetworkingサーバーに画像を投稿するために使用しています

コードの何が問題なのかわかりません。どんな助けでも大歓迎です

4

2 に答える 2

3

他の誰かが後で同じ問題を抱えている場合。これはあなたが使うべきコードです

NSURL *url = [NSURL URLWithString:@"http://api-base-url.com"];
AFHTTPClient *httpClient = [[AFHTTPClient alloc] initWithBaseURL:url];
NSData *imageData = UIImageJPEGRepresentation([UIImage imageNamed:@"avatar.jpg"], 0.5);
NSDictionary *parameter = @{@"body":@"image"};
NSMutableURLRequest *request = [httpClient multipartFormRequestWithMethod:@"POST" path:@"/upload" parameters:parameter constructingBodyWithBlock: ^(id <AFMultipartFormData>formData) {
    [formData appendPartWithFileData:imageData name:@"avatar" fileName:@"avatar.jpg" mimeType:@"image/jpeg"];
}];

AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc] initWithRequest:request];
[operation setUploadProgressBlock:^(NSUInteger bytesWritten, long long totalBytesWritten, long long totalBytesExpectedToWrite) {
    NSLog(@"Sent %lld of %lld bytes", totalBytesWritten, totalBytesExpectedToWrite);
}];
[httpClient enqueueHTTPRequestOperation:operation];

ソース:リンク

于 2013-03-26T07:38:41.877 に答える
1

このようにしてみてください、

parameter = @{@"body":@"Hi",@"image":[NSString stringWithFormat:@"%@" ,imageData]};
于 2013-03-26T06:56:08.563 に答える