2014-10-30 2 views
3

AFNetworking 2.0 (Swift에서 코딩)에 문제가 있습니다. 라이브러리의 GET 메소드는 저에게 완벽하게 작동하는 것 같습니다. 하지만 POST 메서드는 오류를 반환합니다. 오류 사용자 이름/암호가 잘못되었습니다. 처음에는 인증 문제로 보였지만, 실제로 POSTman (REST 클라이언트)에서 POST 요청을 시도했을 때 완벽하게 작동했습니다.AFNetworking 2.0 POST 요청이 신속하게 작동하지 않습니다.

그래서 내가 뭐하는 거지 :

구성 :

var policy : AFSecurityPolicy = AFSecurityPolicy(); 
policy.allowInvalidCertificates = true; 

self.client = AFHTTPRequestOperationManager(baseURL: self.basicUrl) 
self.client!.operationQueue = NSOperationQueue.mainQueue() 
self.client!.securityPolicy = policy 

var responseSerializer : AFJSONResponseSerializer = AFJSONResponseSerializer() 

self.client!.responseSerializer = responseSerializer 

var requestSerializer : AFJSONRequestSerializer = AFJSONRequestSerializer() 
requestSerializer.setValue("application/json", forHTTPHeaderField: "Accept") 

self.client!.requestSerializer = requestSerializer 

내 요청 너희들은 어떻게 생각하십니까

internal func loginUser(email : String, password : String, onCompletion : WebClientLoginResponse) -> Void 
{ 
    var params : Dictionary = ["email":email, "pass":password] 

    self.client!.POST("login", parameters: params, success: { (operation : AFHTTPRequestOperation!, response : AnyObject!) -> Void in 

     var finalResponse : Dictionary = Dictionary<String, String>() 

     finalResponse = response as Dictionary 

     onCompletion(true, nil, nil, nil) 

     }) { (operation : AFHTTPRequestOperation!, error : NSError!) -> Void in 

      println("Error \(error.description) \(operation.responseObject) ") 

      onCompletion(false, nil, nil, nil) 
    } 
} 

? 내가 놓친 게 있니?

감사합니다.

답변

2

서버에서 JSON 인코딩 매개 변수가 필요합니까? 허용되는 answer to this question을 참조하십시오.

또한 간편한 (IMHO) 인코딩 형식을 설정하는 AFNetworking의 Swift 버전 AlamoFire을 사용해보십시오.

+1

안녕하세요 토드, 먼저 대답 해 주셔서 감사합니다. 문제는 내가 requestSerializer도 설정 한 것 같다. (responseSerializer뿐만 아니라). 두 가지를 모두 지정하면 POST가 작동하지 않는 것 같습니다 (이상한 이유로). 결과적으로 requestSerializer를 구성하는 곳의 선을 제거했을 때 POST가 올바르게 작동했습니다! 나는 이유를 모른다! – Tzegenos

+2

오, 나는 그것을 알아 차리지 못했다! AFNetworking에 버그가있는 것 같습니다. 다행 했어. –

+1

@ Tzegenos 감사합니다.이 줄을 제거하면 나를 위해 문제가 해결되었습니다! – NBoymanns

관련 문제