2016-09-27 15 views
0

経由でリクエストを送信します。前swift3するコードを変換し、すべてがOKだったが、データが空である...私のメソッドを呼び出したときに変換した後swift3します。今はalamofire私はalamofireを使用石鹸

private func getRequest(_ soapAction: String, urlService: URL, methodName: String, params: NSArray?) -> NSMutableURLRequest { 
    var newSoapMessage = "" 

    if let _ = params { 
     newSoapMessage = getSoapMessage(methodName, params: params!) 
    } else { 
     newSoapMessage = getSoapMessage(methodName) 
    } 

    request = NSMutableURLRequest(url: urlService) 
    lengthSoapMessage = String(newSoapMessage.characters.count) 

    request.addValue("text/xml; charset=utf-8", forHTTPHeaderField: "Content-Type") 
    request.addValue(lengthSoapMessage, forHTTPHeaderField: "Content-Length") 
    request.addValue("Basic \(accountBase64)", forHTTPHeaderField: "Authorization") 
    request.addValue(soapAction, forHTTPHeaderField: "SoapAction") 
    request.httpMethod = "POST" 
    request.httpBody = newSoapMessage.data(using: String.Encoding.utf8) 

    return request 
} 

はNSMutableURLRequestを返すのGetRequest

var request = getRequest(soapAction,urlService: Common.urlShatelService! as URL, methodName: methodName, params: params) 



    Alamofire.request(request as! URLRequestConvertible).responseData { response in 
     switch response.result { 
     case .success(let value): 
      let result = Result.success(value) 
      callBack(result) 
      break 
     case .failure: 
      let result = Result<Data>.failure 
      callBack(result) 
      print("exception: \(response.result.error)") 
      break 
     } 
    } 

変換する前に、alamofire要求を受け入れるが、変換した後、私はURLRequestConvertibleにキャストしなければなりません!!!!今

。 alamofireコールがこの例外を返すとき:

2016-09-27 17:17:57.267619[3454:1060477] Could not cast value 
of type 'NSMutableURLRequest' (0x101e445b8) to 
'Alamofire.URLRequestConvertible' (0x101e400b0). 
+1

NSMutableURLRequestを使用しないでください。変数URLRequestを宣言するだけです。スウィフト3用 – Moritz

+0

簡単なヒント:1があるときは常に彼らのスウィフトの対応を使用し、もうNSオブジェクトを使用しないでください。 – Moritz

答えて

5

私は同じ問題がありました。 URLRequestのためにタイプNSMutableURLRequestを変更してみてください。

request = URLRequest(url: urlService) 
関連する問題