通过SOAP请求发送URL

时间:2015-02-12 02:48:56

标签: c# xml soap upnp dlna

我正在通过SOAP请求与电视进行通信,以便让它播放视频网址。这一切都适用于简单的URL,例如http://clips.vorwaerts-gmbh.de/big_buck_bunny.mp4,但只要将参数添加到URL http://clips.vorwaerts-gmbh.de/big_buck_bunny.mp4?fname=fred&lname=jones,XML就会格式错误('&'符号在XML中具有特殊含义)。

我的问题是我是否可以使用一种方法来发送消息,以便XML有效并且电视仍然能够破译网址。示例消息如下所示:

<?xml version=\"1.0\"?> 
<s:Envelope xmlns:s=\"http://schemas.xmlsoap.org/soap/envelope/\" s:encodingStyle=\"http://schemas.xmlsoap.org/soap/encoding/\">
    <s:Body> 
        <u:SetAVTransportURI xmlns:u=\"urn:schemas-upnp-org:service:AVTransport:1\"> 
            <InstanceID>0</InstanceID> 
            <CurrentURI>http://clips.vorwaerts-gmbh.de/big_buck_bunny.mp4</CurrentURI> 
            <CurrentURIMetaData>NOT_IMPLEMENTED</CurrentURIMetaData> 
        </u:SetAVTransportURI> 
    </s:Body> 
</s:Envelope>

我已经尝试过以下内容:

  • 将网址包含在&lt; [!CDATA []]&gt;中(这失败了,因为电视只是从标签中取出所有文字)
  • 使用网址编码对网址进行编码(替换特殊字符,例如'&amp;'和%26。电视认为它是无效的网址)

感谢任何帮助

1 个答案:

答案 0 :(得分:0)

尝试使用&amp;代替&

http://clips.vorwaerts-gmbh.de/big_buck_bunny.mp4?fname=fred&amp;lname=jones