Impostare il tipo di contenuto della richiesta usando AFHTPREQUESTOPERATEROFERATIONSOFERATIONSOPERATIONISTORE?
-
21-12-2019 - |
Domanda
Ho tentato di parlare con un'API JSON su HTTP usando AFNetworking 2.0.Gli esempi che ho trovato consigliato l'uso del AFHTTPRequestOperationManager
, quindi ho implementato il seguente pseudocodice:
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:[…]];
.
Sfortunatamente, sembra che il AFJSONRequestSerializer
non sia (o forse può ) impostare il tipo di contenuto, e non sono in grado di trovare un modo per farlo manualmente.
Come tale, l'API rifiuta la mia richiesta con un errore "HTTP 415 non supportato Tipo".
Altri, domande simili sono causate dal server risposta non essere applicazione / json, ma questa domanda riguarda le intestazioni di richiesta.
Soluzione
Questo è stato causato da un server API errato che asserisce che tutte le richieste avevano un'intestazione Content-Type: application/json
.L'afnetworking eviterà correttamente l'impostazione di un'intestazione per HEAD
, GET
o richieste DELETE
.