Legen Sie den Inhaltstyp der Anfrage mit dem AFHTTPRequestOperationManager von AFNetworking 2 fest.

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

  •  21-12-2019
  •  | 
  •  

Frage

Ich habe versucht, mit AFNetworking 2.0 über HTTP mit einer JSON-API zu kommunizieren.Die Beispiele, die ich gefunden habe, empfahlen die Verwendung von AFHTTPRequestOperationManager, also habe ich den folgenden Pseudocode implementiert:

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:[…]];

Leider scheint es so zu sein AFJSONRequestSerializer nicht (oder vielleicht dürfen nicht) den Inhaltstyp festlegen, und ich kann keine Möglichkeit finden, dies manuell zu tun.

Daher lehnt die API meine Anfrage mit der Fehlermeldung „HTTP 415 nicht unterstützter Medientyp“ ab.

Andere, ähnliche Fragen werden vom Server verursacht Antwort nicht application/json, aber bei dieser Frage geht es um die Anforderungsheader.

War es hilfreich?

Lösung

Dies wurde dadurch verursacht, dass ein falscher API-Server dies behauptete alle Anfragen hatten eine Content-Type: application/json Header.AFNetworking vermeidet korrekterweise das Setzen dieses Headers für HEAD, GET, oder DELETE Anfragen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top