【发布时间】:2017-02-05 08:58:03
【问题描述】:
尝试发布一些 XML。创建了一个 IBAction“SelectButtonA”,它使用 Alamofire.request 发布到一个地址。由结构处理的肥皂编码。
不起作用。我如何测试它是否正在发布,并解决错误“调用结果未使用,但产生'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"))
}
【问题讨论】:
标签: xml swift interface-builder cocoapods alamofire