2017-02-05 57 views
0

嘗試後一些XML。創建一個IBAction爲‘SelectButtonA’,即用Alamofire.request張貼到由struct處理的地址。SOAP編碼。Alamofire .post in Swift。 「調用的結果沒有被使用,但會產生‘DataRequest’

隱而不宣沒有工作,我該如何測試它的發佈,並解決錯誤「調用結果未被使用,但產生'DataRequest'?

//定義Alamofire的SOAP編碼和XML的主結構。 //

struct SOAPEncoding: ParameterEncoding { 
    let service: String 
    let action: String 
    let IRCCC: String = "AAAAAQAAAAEAAABlAw==" 

    func encode(_ urlRequest: URLRequestConvertible, with parameters: Parameters?) throws -> URLRequest { 
     var urlRequest = try urlRequest.asURLRequest() 

     guard parameters != nil else { return urlRequest } 

     if urlRequest.value(forHTTPHeaderField: "Content-Type") == nil { 
      urlRequest.setValue("text/xml", forHTTPHeaderField: "Content-Type") 
     } 

     if urlRequest.value(forHTTPHeaderField: "SOAPACTION") == nil { 
      urlRequest.setValue("\(service)#\(action)", forHTTPHeaderField: "SOAPACTION") 
     } 

     //let soapArguments = parameters.map({key, value in "<\(key)>\(value)</\(key)>"}).joined(separator: "") 

     let soapMessage = 
      "<s:Envelope xmlns:s='http://schemas.xmlsoap.org/soap/envelope/' s:encodingStyle='http://schemas.xmlsoap.org/soap/encoding/'>" + 
       "<s:Body>" + 
       "<u:\(action) xmlns:u='\(service)'>" + 
       IRCCC + 
       "</u:\(action)>" + 
       "</s:Body>" + 
     "</s:Envelope>" 

     urlRequest.httpBody = soapMessage.data(using: String.Encoding.utf8) 

     return urlRequest 
    } 
} 

@IBAction func SelectButtonA(sender: NSButton) { 
    Alamofire.request("http://192.168.2.7/sony/IRCC?", method: .post, parameters: ["parameter" : "value"], encoding: SOAPEncoding(service: "urn:schemas-sony-com:service:IRCC:1", action: "X_SendIRCC")) 
} 

Screenshot of the whole thing. Trying to make a remote.

回答

0

這是所有在Alamofire README GitHub上的解釋。

Alamofire.request()方法返回一個Request對象並開始運行。然後您可以使用.response()函數在其上獲取該請求的結果。

Alamofire.request(...).response { 
    response in 

    // get details of the result out of the response input to this closure. 
} 

第一部分...你怎麼知道它的工作?在完成時訪問數據。

第二部分......你如何擺脫錯誤?添加完成。

+0

我檢查了迴應。它產生一個畸形的請求。我固定它。 – yeeeeee

0

「調用的結果沒有被使用,但產生‘DataRequest’只是一個警告消息,因爲Alamofire.request(...)返回一個有價值的,但你沒有使用它,而不是錯誤消息。

0

產生了畸形的請求。

的作品發送SOAP請求的代碼,而無需標題等:

Alamofire.request("http://192.168.2.7/sony/IRCC?", 
         method: .post, 
         parameters: ["parameter" : "value"], 
         encoding: SOAPEncoding(service: "urn:schemas-sony-com:service:IRCC:1", 
              action: "X_SendIRCC", IRCCC: "AAAAAQAAAAEAAABgAw==")).responseString { response in 
               print(response) 
相關問題