2014-07-20 2 views
19

AFNetworking에 문제가 있습니다. content-typeapplication/json으로 설정할 수 없습니다. 어떻게해야합니까? 나는 많은 해결책을 시도하지만 아무도 일하지 않았다. 여기 내 코드입니다 :이 응답을 얻을AFnetworking에서 콘텐츠 유형을 설정하는 방법

AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager]; 
    if (self.enableBasicAuth){ 
    [manager setRequestSerializer:[AFHTTPRequestSerializer serializer]]; 
    [manager.requestSerializer setAuthorizationHeaderFieldWithUsername:[[SOWMerchant merchant]  username] password:[[SOWMerchant merchant] password]]; 
    } 
    [manager.requestSerializer setValue:@"application/json" forHTTPHeaderField:@"Content-Type"]; 
    manager.responseSerializer = [AFJSONResponseSerializer serializer]; 
    [manager POST:[NSString stringWithFormat:@"%@", url] parameters:postData success:^(AFHTTPRequestOperation *operation, id responseObject) { 
    [self onSuccessResponse:responseObject request:operation]; 
    } failure:^(AFHTTPRequestOperation *operation, NSError *error) { 
    [self onError:error request:operation]; 
    }]; 

{ URL: https://sbengtest.spotonway.com:9099/v1.0/merchant/check }, response: <NSHTTPURLResponse: 0x10aa20530> { URL: https://sbengtest.spotonway.com:9099/v1.0/merchant/check } { status code: 400,  headers { 
Connection = "keep-alive"; 
"Content-Length" = 192; 
"Content-Type" = "text/html"; 
Date = "Sun, 20 Jul 2014 22:34:59 GMT"; 
Server = "nginx/1.2.1"; 
} }> 

UPDATE :이

AFJSONRequestSerializer *requestSerializer = [AFJSONRequestSerializer serializer]; 

[requestSerializer setValue:@"application/json" forHTTPHeaderField:@"Content-Type"]; 
[requestSerializer setValue:@"application/json" forHTTPHeaderField:@"Accept"]; 

operationManagerInstance.requestSerializer = requestSerializer; 

내 응용 프로그램 충돌

UPDATE를 추가 할 trye

2 : 그것은 작동합니다. 이 라인을 삭제했습니다.

[requestSerializer setValue:@"application/json" forHTTPHeaderField:@"Accept"]; 
+0

사용'가 자동으로 적절한 콘텐츠 형식을 설정해야 AFJSONRequestSerializer' 시도 했습니까? – blazejmar

+1

예, 작동하지 않습니다. – crox

+0

보내 주신 응답 본문과 모든 요청 헤더를 게시하십시오. 아마 content-type이 아닌 accept 헤더에 문제가있을 수 있습니다. – blazejmar

답변

8

이것은 저에게 효과적입니다!

[requestSerializer setValue:@"application/json" forHTTPHeaderField:@"Accept"]; 
6

manager.responseSerializer.acceptableContentTypes=[NSSet setWithObject:@"text/html"]; 

신속이 코드 일

목표 - C

manager.responseSerializer.acceptableContentTypes=NSSet (object: "text/html") as Set<NSObject> 
+1

좋은 답변 .... – KSR

관련 문제