0

配列であるパラメーター (カテゴリ) を使用して画像を投稿しようとしています。このパラメーターを省略しても、問題なく送信できます。ただし、そのままにしておくと、配列値が正しくシリアル化されていないように見えるため、サーバーがエラーをスローします。

NSMutableDictionary *dict = [NSMutableDictionary dictionaryWithDictionary:@{
    @"auth_token" : authToken,
    @"title" : title,
    @"categories" : @[1,2,3]
}];

return [[MyHTTPSessionManager sharedManager] POST:path parameters:dict constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {
    [formData appendPartWithFileData:imageData
                                name:@"image"
                            fileName:@"image.jpg"
                            mimeType:@"image/jpeg"];
} success:nil failure:nil];

私のサーバーログを見ると、これはカテゴリがどのように出くわしているかです:

Parameters: {"categories"=>"(\n    1,\n    2,\n    3\n)", … }

そして、次のようにする必要があります。

Parameters: {"categories"=>[1,2,3], … }

AFHTTPSessionManager の requestSerializer のインスタンスを に設定しようとしました[AFJSONRequestSerializer serializer]が、それは役に立たないようです。

画像とパラメータを正しく POST するにはどうすればよいですか? AFHTTPRequestOperation にフォールバックすることは避けたいと思います。

ありがとう!

4

1 に答える 1

1

AFNetworking の最新バージョンにアップグレードしてみてください。これは github.com/AFNetworking/AFNetworking/issues/1388 で修正されたと思いますが、これは AFNetworking 2.0.1 に組み込まれたと思います最新バージョンが機能しない場合は、最新のコミットをプルしてください。

于 2013-10-28T19:04:37.810 に答える