国家铁路查询与SOAP请求有关.操作无法完成.(NSURLDomain错误-1012.)



我正在尝试使用下面的API查询国家铁路查询,但我遇到了一些问题。

http://lite.realtime.nationalrail.co.uk/openldbws/

我正在尝试使用SOAPEngine64框架(https://github.com/priore/SOAPEngine)以简化请求的过程(使用Swift),但我似乎无法返回任何结果。

每次我运行以下代码时,我都会打印出这个错误。有人知道我哪里错了吗?

错误:

2015-03-28 13:46:09.528 Rapid Rail UK[18994:1032065] Error Domain=NSURLErrorDomain Code=-1012 "The operation couldn’t be completed. (NSURLErrorDomain error -1012.)" UserInfo=0x7fd9a9c35e80 {NSErrorFailingURLKey=https://lite.realtime.nationalrail.co.uk/OpenLDBWS/wsdl.aspx?ver=2014-02-20, NSErrorFailingURLStringKey=https://lite.realtime.nationalrail.co.uk/OpenLDBWS/wsdl.aspx?ver=2014-02-20}

Swift代码:

    var token = "<com:AccessToken><com:TokenValue>MY_TOKEN_KEY</com:TokenValue></com:AccessToken>"
    var soap = SOAPEngine()
    soap.header = token
    soap.actionNamespaceSlash = true
    var args = [
        "numRows" : 10,
        "crs" : "GTW"
    ];
    soap.requestWSDL("https://lite.realtime.nationalrail.co.uk/OpenLDBWS/wsdl.aspx?ver=2014-02-20",
        operation: "GetDepartureBoard",
        value: args,
        completeWithDictionary: { (statusCode : Int,
            dict : [NSObject : AnyObject]!) -> Void in
            var result:Dictionary = dict as Dictionary
            NSLog("%@", result)
        }) { (error : NSError!) -> Void in
            NSLog("%@", error)
    }

不要使用requestWSDL,使用requestURL,没有wsdl扩展,直接调用asmx服务(https://lite.realtime.nationalrail.co.uk/OpenLDBWS/ldb6.asmx),并尝试将soapAction设置为http://thalesgroup.com/RTTI/2014-02-20/ldb/GetDepartureBoard.这是因为WSDL不包含soapAction属性,而是正确解析WSDL定义所必需的。

最新更新