SOAPEngine 的 completeWithDictionary 为空

Posted

技术标签:

【中文标题】SOAPEngine 的 completeWithDictionary 为空【英文标题】:SOAPEngine's completeWithDictionary is empty 【发布时间】:2015-09-14 10:07:43 【问题描述】:

我在 Swift ios 中有这个函数,使用 SOAPEngine 来获取响应:

func testLogin() 
    //working url
    var urlString  = "http://192.168.1.3/magento/api/v2_soap/"
    let url = NSURL(string: urlString)

    var client = SOAPEngine()
    client.userAgent = "SOAPEngine"
    client.actionNamespaceSlash = true
    client.version = VERSION_1_1
    client.setValue("joemar", forKey: "username")
    client.setValue("NewAPIKey", forKey: "apiKey")
    client.setValue("urn:Magento", forKey: "namespace")

    client.requestURL(url, soapAction: "login", completeWithDictionary:  (statusCode : Int, response : [NSObject : AnyObject]!) -> Void in
        client = SOAPEngine()
        client.userAgent = "SOAPEngine"
        client.actionNamespaceSlash = true
        client.version = VERSION_1_1

        let sessionId : AnyObject? = response

        client.setValue(sessionId, forKey: "sessionId")

        client.requestURL(url, soapAction: "customerCustomerList", completeWithDictionary:  (statusCode : Int, response : [NSObject : AnyObject]!) -> Void in
            let data : AnyObject? = response
            , failWithError:  (error : NSError!) -> Void in
            println("failed!")
        )
        )  (error : NSError!) -> Void in
        println("failed!")
    

但是,“completeWithDictionary”始终为空。我在 android 中使用了完全相同的功能,并且运行良好。 Android 使用的是 ksoap2 库。 请帮忙。谢谢。

【问题讨论】:

您确定请求有效吗?另外,它真的失败了还是空了? (例如,您是否获得错误处理程序,或者您是否使用空对象获得成功?)您能否提供提要信息以查看它是否有效? 谢谢吉里。是的,该请求是有效的,并且它正在运行在同一后端服务器上的 Android 对应项上工作。 statusCode 是 200,但响应字典有 0 个键/值对(空对象成功)。顺便说一句,您会注意到这是对具有不同端点的相同服务的后续调用。能够在第一次调用时获取 sessionId 值并传递给下一次。 【参考方案1】:

尝试设置client.responseHeader = true

提示:如果您想要更直接的支持,请使用 SOAPEngine 项目的 github 问题

【讨论】:

嗨,达尼洛,谢谢。我暂时离开了 SOAPEngine,因为我无法解决这个问题,因为它很紧急。我已经使用 AFNetworking 手动创建了 SOAP 消息。现在它正在工作。如果在未来的项目中有更多时间,我将再次尝试使用 SOAPEngine。泰。

以上是关于SOAPEngine 的 completeWithDictionary 为空的主要内容,如果未能解决你的问题,请参考以下文章

leetcode1324. Print Words Vertically

关于光的反射和折射的例子?

既是3的倍数又是5的倍数都有哪些

一个三位数既是3的倍数,又是5的倍数。这样的三位数最小是啥

数组的创建,及数组的方法

cnn中的步长的目的和重要性是啥