【问题标题】:Get Soap Messages posted on IP获取发布在 IP 上的肥皂消息
【发布时间】:2013-03-11 10:25:24
【问题描述】:

我怎样才能在 IP 上发布肥皂消息,比如 12.23.421.12:3759

有没有什么方法可以读取这个IP上的soap消息并从XML中解析数据。

这是来自 WIRESHARK 工具的日志,我需要解析它

<SOAP-ENV:Envelope 
   xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" 
   xmlns:SOAP-ENC="http://schemas.xmlso ap.org/soap/encoding/" 
   xmlns:xsi ="http://www.w3.org/2001/XMLSche ma-instance" 
   xmlns:xsd="http://w ww.w3.org/2001/XMLSchema">
<SOAP-ENV:Body>
    <huawei:setSubscriberDetails xmlns:huawei="http://business.add.gsm.rcom.com">
        <paramSubscriberDetails>
            <IMEI>355030005026 8312</IMEI>
            <IMSI >405828210239016</IMSI>
            <prepaid>true</prepaid>
            <MSISDN>919646845889</MSISDN>
        </paramSubscriberDetails>
    </huawei:setSubscriberDetails>
</SOAP-ENV:Body>

【问题讨论】:

  • get 是什么意思?互联网上是否有向您提供信息的服务,或者您是否自己实现了应该监听特定端口/IP 地址的 (SOAP) 服务?
  • 是的,有一个向 IP 发送肥皂消息的服务,我需要解析该消息,我该怎么做。
  • 您能否举例说明您从该服务中获得了什么?尤其是在肥皂信封里
  • 请参考我从wire shark添加的日志代码。

标签: c# asp.net wcf web-services soap


【解决方案1】:

尝试向您的项目添加服务引用。这会创建一个类和一些可用于调用soap服务的方法。

如果您只收到 Soap 消息,请使用 Load 方法将其加载到 XDocument。 因为它是 XML,你可以通过这样做来获取你的信息

var xDoc = XDocument.Load("http://yourserver.com/yourservice/1");
var body = xDoc.Element("SOAP-ENV:Body");
var huaweiSubscriberDetails = new HuaweiSubscriberDetails(){
     Imei = body.Element("IMEI").Value,
     Imsi = body.Element("IMSI").Value,
     etc...
}

我只是在没有 Visual Studio 的情况下做了这个,所以如果它包含错误,请不要把我钉在上面。

【讨论】:

  • 我无法添加服务引用,因为它实际上不是托管在 IP 上的服务,问题是肥皂消息发送到此 IP(源 IP 不固定,但目的地固定)你可以说它是就像每次都在这个 IP 上命中的 TCP 数据包一样,我需要抓取这些数据包
【解决方案2】:

我认为您需要在 IP:Port 上安装 TCP 侦听器

TcpListener MSDN

通常是 SOAP 响应返回到调用者地址(SOAP 请求)。如果 SOAP 请求来自您,则不需要 TcpListener。这是我的猜测:)

【讨论】:

    猜你喜欢
    • 2017-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-04
    • 1970-01-01
    相关资源
    最近更新 更多