将带有Blackberry的SOAP消息发送到ASP.NET Web服务会丢失SOAP头

将带有Blackberry的SOAP消息发送到ASP.NET Web服务会丢失SOAP头,soap,blackberry-10,soapheader,blackberry-android,Soap,Blackberry 10,Soapheader,Blackberry Android,好吧,这一周我都快发疯了,必须有一个简单的解释来解释为什么会发生这种情况。我已经编写了一个blackberry应用程序,它与SOAP ASP.NET 2.0 Web服务进行通信。Web服务希望请求中有一个SOAP头和一个会话令牌 SOAP消息如下: <?xml version="1.0" encoding="utf-8"?> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:x

好吧,这一周我都快发疯了,必须有一个简单的解释来解释为什么会发生这种情况。我已经编写了一个blackberry应用程序,它与SOAP ASP.NET 2.0 Web服务进行通信。Web服务希望请求中有一个SOAP头和一个会话令牌

SOAP消息如下:

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <soap:Header>
        <AuthenticationTicket xmlns="http://tempuri.org//">
            <DeviceId>c3a4fc48-ce59-43f0-ae48-3452b5df9f14</DeviceId>
            <UserId>00000000-0000-0000-0000-000000000000</UserId>
            <SessionId>F432F463D5A5613BDAFF1BB43264D40A20F691F397F7248F92424D5BE2E8A9DFC888C8418CEFEB84BA4A9FE203B02542C926B98D9C499389D91FE390D3D0D611EC2BC37BBE7AB21CA9533B9389075D417D5EDB82CB8D3E46680B17A6C9DE552CFBFBE86C84E96C20FB07BBCA373B456B8F2FDB9F711ADBA8DEF46222A96113559CEAB4AE41EA44B52BDEC1AAF5FA7598256859F60D1F5615AD35B47C5EA23D8019E0690C463330503D4F3026575BE04CE341D89A63770930569153D9523D6733C3B831C56824B94EFD696A83BB9C4DD93817BDCA299F20CD7CCEC479F6267A09A03AD3C025DBDEC3B8F49402DE1B6538</SessionId>
        </AuthenticationTicket>
    </soap:Header>
    <soap:Body>
        <Retrieve xmlns="https://mobile.southeasthealth.com/">
            <Request xsi:type="CallListRequest">
                <Type>CallList</Type>
                <DeviceId>00000000-0000-0000-0000-000000000000</DeviceId>
                <UserName>XXXX</UserName>
            </Request>
        </Retrieve>
    </soap:Body>
</soap:Envelope>
我遇到的问题是,当web服务接收到请求时,消息中没有包含SOAP头

还有其他人遇到过这个问题吗

非常感谢,提前。 尼尔

-----更新-----

我明白了,我回顾了这些消息,并将它们与WSDL进行了比较,我还通过SOAPUI运行了这些消息,通过我,相同的代码在Android上工作没有问题

我最终发现它可以归结为一个名称空间

<AuthenticationTicket xmlns="http://tempuri.org//">

上面的名称空间末尾有两个//,这与WSDL定义不匹配,我将其更改为

<AuthenticationTicket xmlns="http://tempuri.org/">

一切都开始起作用了

黑莓似乎比安卓更挑剔有效的SOAP


我应该发现的

你用什么图书馆来做这个?在我看来,这不像黑莓Java。我使用eclipse和android和黑莓插件,该应用程序最初是一个android应用程序,使用AndroidSo的黑莓插件转换为黑莓,这是BlackBerry-10?如果是这样,您应该在问题中使用BlackBerry-10标记,因为这与传统的BlackBerry Java完全不同。
<AuthenticationTicket xmlns="http://tempuri.org/">