AFNetworking 2のAFHTTPRequestOperationManagerを使用して、リクエストのコンテンツタイプを設定しますか?

StackOverflow https://stackoverflow.com//questions/24025469

  •  21-12-2019
  •  | 
  •  

質問

AFNETWORKING 2.0を使用してHTTP経由のJSON APIと話をしています。私が見つけた例はAFHTTPRequestOperationManagerの使用を推奨するので、次の疑似コードを実装しました:

manager = [[AFHTTPRequestOperationManager alloc] initWithBaseURL:[NSURL URLWithString:@"http://test-api.localdev/"]];
manager.requestSerializer = [AFJSONRequestSerializer serializer];
manager.responseSerializer = [AFJSONResponseSerializer serializer];
params = @{
    @"username": @"Drarok",
    @"token": @"1234-abcd"
};
[manager GET:@"transactions" parameters:params success:[…] failure:[…]];
.

残念ながら、AFJSONRequestSerializerはコンテンツタイプを設定しない(またはおそらくがができません)、手動で行う方法が見つかりません。

そのように、APIは「HTTP 415サポートされていないメディアタイプ」エラーで要求を拒否します。

その他、類似の質問は、アプリケーション/ JSONではなく、サーバ応答が原因であるが、この質問は要求ヘッダに関するものです。

役に立ちましたか?

解決

これは、 all 要求がContent-Type: application/jsonヘッダーを持っていたという誤ったAPIサーバーが原因であった。AFNETSWORKINGは、HEADGET、またはDELETE要求のヘッダーの設定を正しく避けます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top