2016-05-11 13 views
0

Ich versuche, einen Rest-Webdienst in einer iOS-Anwendung unter Verwendung von Restkit aufzurufen, aber ich erhalte diesen Fehler: restkit.network:RKObjectRequestOperation.m:210 response.body = 415 Nicht unterstützter Medientyp 415 Nicht unterstützter Medientyp in Restkit Antwort

415 Nicht unterstützter Medientyp

ich diese Zeile in meinem Code puted den Inhaltstyp als application/json zu setzen:

objectManager.requestSerializationMIMEType = RKMIMETypeJSON; 

und dies ist mein Wunsch ist in der Konsole

request.headers={ 
    Accept = "application/json"; 
    "Accept-Language" = "en;q=1, fr;q=0.9, de;q=0.8, zh-Hans;q=0.7, zh-Hant;q=0.6, ja;q=0.5"; 
    Authorization = "Basic U1lTQURNSU46aHVsNTU4ODg1OA=="; 
    "Content-Type" = "application/json; charset=utf-8"; 
    "User-Agent" = "iosProj/1 (iPad Simulator; iOS 8.3; Scale/2.00)"; 
} 

gezeigt Dann habe ich festgestellt, dass das Problem von "charset = utf-8" verursacht werden könnte, wie erwähnt here. Meine Frage ist, wie „charset = utf-8“ zu entfernen, in Restkit

+1

Ich denke, Sie haben müssen RestKit den 'NSURLRequest' zu erstellen und dann die neuen Inhaltstyp-Header gesetzt explizit – Wain

+0

Danke @Wain, es funktioniert: NSMutableURLRequest * Anfrage = [[NSMutableURLRequest Alloc] initWithURL: url]; [Anfrage setValue: @ "application/json" forHTTPHeaderField: @ "Content-Type"]; –

+0

fügen Sie das als Antwort hinzu und akzeptieren Sie es :) – Wain

Antwort

0

Dank @Wain Kommentar ich das Problem gelöst, indem die Anfrage Erstellen und Einstellen der Inhaltstyp-Header:

NSMutableURLRequest* request = [[NSMutableURLRequest alloc] initWithURL:url]; 
[request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"]; 
[request setHTTPMethod:@"POST"];  
[request setHTTPBody:jsonData]; 
RKResponseDescriptor *responseDescriptor = [RKResponseDescriptor 
              responseDescriptorWithMapping: [LoginResponse getResponseMapping] 
              method:RKRequestMethodPOST 
              pathPattern:nil 
              keyPath:@"OutputParameters" 
              statusCodes:RKStatusCodeIndexSetForClass(RKStatusCodeClassSuccessful)]; 
RKObjectRequestOperation *operation = [[RKObjectRequestOperation alloc]initWithRequest:request responseDescriptors:@[responseDescriptor]]; 
0

ich diese Hoffnung hilft jemandem. Dies ist mir kürzlich passiert und ich habe auch den Content-Type vermisst. Doch man leicht, dass zu RKObjectManager wie hinzufügen:

RKObjectManager *manager = [RKObjectManager managerWithBaseURL:[NSURL URLWithString:YOUR_BASE_URL]]; 
[manager setRequestSerializationMIMEType:RKMIMETypeJSON]; 
Verwandte Themen