2015-01-23 5 views
1

요청을 XML 형식으로 보내려면 requestSerializer를 어떻게 지정해야하는지 알 수 없습니다. 이것은 빠른 예입니다 : 당신은 지금 내가 사용하고 AFHTTPRequestSerializer()를 볼 수 있습니다AFNetworking 2.5를 사용하여 XML PUT/POST 요청을 보내는 방법

var manager = AFHTTPRequestOperationManager() 

manager.responseSerializer = AFXMLParserResponseSerializer() 
manager.requestSerializer = AFHTTPRequestSerializer() 

var parameters = "<regNumber>123</regNumber><pinNumber>234</pinNumber>" 
var encodingParameters = parameters.dataUsingEncoding(NSUTF16StringEncoding) 

manager.PUT("serviceurl", parameters: encodingParameters, success: { 
    //.... 
}, 
     failure: { 
      ///..... 
     } 
) 

-하지만 난 그게 정확한지 잘 모르겠습니다. AFXMLParserResponseSerializer()와 비슷한 것을 찾지 만 요청시.

그것은 다음과 같이 AFJSONRequestSerializer와 함께 잘 작동 :

var manager = AFHTTPRequestOperationManager() 

manager.responseSerializer = AFXMLParserResponseSerializer() 
manager.requestSerializer = AFJSONRequestSerializer(writingOptions: NSJSONWritingOptions()) 

var parameters = ["regNumber": 123, "pinNumber": 234] 

manager.PUT("serviceurl", parameters: parameters, success: { 
     //.... 
    }, 
      failure: { 
       ///..... 
      } 
    ) 

은 아무도 AFNetworking 2.5을 사용하여 XML 요청과 작업 예제를 게재 할 수 있습니까?

답변

1

이 같은 대신 AFHTTPRequestOperationManager의 AFHTTPRequestOperation를 사용할 수 있습니다

let xmlString = "<regNumber>123</regNumber><pinNumber>234</pinNumber>" 
    let xmlData = xmlString.dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: false) 
    let request = NSMutableURLRequest(URL: NSURL(string: "serviceurl")!) 
    request.HTTPMethod = "POST" 
    request.HTTPBody = xmlData 

    let operation = AFHTTPRequestOperation(request: request); 

    operation.setCompletionBlockWithSuccess({ (AFHTTPRequestOperation operation, AnyObject response) -> Void in 
     //Response 

    }, failure: { (AFHTTPRequestOperation operation, NSError error) -> Void in 
     println(error.localizedDescription) 
    }) 
    operation.start() 
+0

감사합니다 많이! 이게 내가 필요한거야! – machabeli

+0

당신은 오신 것을 환영합니다. –

+2

다음은 obj-c에서이 답변입니다. 그것은 누군가에게 유용 할 수 있습니다 : AFHTTPRequestOperation * operation = [[AFHTTPRequestOperation alloc] initWithRequest : request]; self.manager.responseSerializer = [AFXMLParserResponseSerializer serializer]; [운전 setCompletionBlockWithSuccess^(AFHTTPRequestOperation * 동작 아이디 responseObject) {// 응답 실패}^(AFHTTPRequestOperation * 동작 오류 NSError *) { NSLog (@ "실패"); }]]; [작업 시작]; –

관련 문제