我创建了一个Windows服务,将媒体文件(.ts,.mpg,...)上传到CDN FTP存储库,然后CDN调用Web服务获取每个文件的下载链接。
下载链接如下:
http://CompanyName-‐yy.XXX.net/XXX/folder.asp?param1=636¶m2=123
然后我将所有下载链接存储到SOAP消息中,然后调用另一个Web服务。
我的问题:如何在不编码的情况下保存带有&
字符的网址?如果我必须对其进行编码,接收我的请求的另一方是否应该再次对其进行解码?
答案 0 :(得分:2)
您正在发送XML请求,因此 根据XML标准对其进行编码。这包括使用&
实体替换值&
,除非您使用CDATA
内容。
解码它是客户端的责任,除非他使用完全准系统或自编的XML解析器,它们应该由他们使用的解析器处理。
那就是说,我想知道你是如何调用SOAP请求的?通常,当您使用WSDL文件创建Web服务适配器时,您只需填写相应的类属性并发送请求,而无需考虑编码。
答案 1 :(得分:0)
请参阅http://msdn.microsoft.com/en-us/library/aa226544(v=sql.80).aspx:
在URL执行的查询中, 特殊字符指定为 %xx,其中xx是十六进制值 这个角色。下表 列出这些特殊字符和 描述了它们的含义。更多 信息,请参阅RFC1738 规格在 http://www.faqs.org/rfcs/rfc1738.html
特殊字符&
在网址中由%26
表示。
哎呀,我发现你想在XML中对&
进行编码,所以像SirViver一样使用&
。