AFNetworking 2のAFHTTPRequestOperationManagerを使用して、リクエストのコンテンツタイプを設定しますか?
-
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は、HEAD
、GET
、またはDELETE
要求のヘッダーの設定を正しく避けます。
所属していません StackOverflow