小编Aar*_* B.的帖子

在innerXML中获取引号以作为"

(警告 - 下面的xml和无偿字符编码的unholy混合.)

简短版本: 为什么我不能得到我的服务引用调用(c#,.net 3.5,添加到VS2008的自动服务引用代码)来正确编码一个看起来像这个电线的参数:(查找"位..那是我的祸根.)

(为清楚起见,删除了其他额外的肥皂碎片)

<SOAP-ENV:Body><SOAPSDK4:SetCondition xmlns:SOAPSDK4="http://tempuri.org/message/">
<sharedSecret>buggerall</sharedSecret>

<xmlData>&lt;SEARCHINFO_LIST&gt;&lt;SEARCH_INFO action=&quot;add&quot; status=&
quot;3&quot; name=&quot;TestProfile2&quot; mask=&quot;0&quot; campaign_id=&quot;33&quot; 
campaign_protected=&quot;N&quot; condition_protected=&quot;N&quot;&gt;&lt;CONDITIONS/&
gt;&lt;EXPRESSIONS/&gt;&lt;/SEARCH_INFO&gt;&lt;/SEARCHINFO_LIST&gt;</xmlData>
</SOAPSDK4:SetCondition></SOAP-ENV:Body>   
Run Code Online (Sandbox Code Playgroud)

我设置参数,拨打电话......服务返回一条很好的消息,上面写着"没有SOU--肥皂给你!"

我在传递给webservice参数字符串中尝试了其他几种格式:

action=\"add\"
Run Code Online (Sandbox Code Playgroud)

这给了我这个电线(通过提琴手): action="add"

action=&quot;add&quot;
Run Code Online (Sandbox Code Playgroud)

这给了我这个电报: action=&amp;quot;add&amp;quot;

和各种组合(action =""add""?​​!)与html.encode,url.encode几乎完全被轰炸,或在电线上显示为双引号.

哦,我甚至试过<![CDATA[&quot;]]周围.那也行不通.

有没有办法在soap消息的innerHtml位强制使用双引号编码?

*(因为这就是服务所需要的.不要问问题.这些不是您正在寻找的机器人)

*** 长而曲折的版本:

我正在编写一个应用程序来自动化一些目前由(winform)管理GUI应用程序处理的程序.(实际上,它是一个mmc snap in.无论如何.)

为了完成它的任务,winform应用程序通过标准的Web服务调用与它的服务器进行通信.

我正在使用VS2008的漂亮的"Web服务参考"自动生成东西(这是技术说明),并且我已成功通过Web服务进行身份验证.为了确保我正确地做事,我从GUI应用程序中捕获了调用,然后将它们与我在线上发送的内容进行了比较.一切都很好.然后我遇到了&符号的邪恶.(更恰当的说,如何正确编码)

对于其中一个调用,Web服务期望看到这样的内容:(我捕获了通过提琴手发送此应用程序的应用程序)

<?xml version="1.0" encoding="UTF-8" standalone="no"?><SOAP-ENV:Envelope
xmlns:SOAPSDK1="http://www.w3.org/2001/XMLSchema" xmlns:SOAPSDK2="
http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAPSDK3="
http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="
http://schemas.xmlsoap.org/soap/envelope/"><SOAP-ENV:Body><SOAPSDK4:SetCondition
xmlns:SOAPSDK4="http://tempuri.org/message/"><sharedSecret>0500001007C3525F3-F315-460D-
AF5C-D84767130126094</sharedSecret><xmlData>&lt;SEARCHINFO_LIST&gt;&lt;SEARCH_INFO  
action=&quot;add&quot; status=&quot;3&quot; name=&quot;TestProfile2&quot; mask=&
quot;0&quot; campaign_id=&quot;33&quot;campaign_protected=&quot;N&quot;
condition_protected=&quot;N&quot;&gt;&lt;CONDITIONS/&gt;&lt;EXPRESSIONS/&gt;&
lt;/SEARCH_INFO&gt;&lt;/SEARCHINFO_LIST&gt;</xmlData></SOAPSDK4:SetCondition></SOAP-
ENV:Body></SOAP-ENV:Envelope>
Run Code Online (Sandbox Code Playgroud)

剥离所有额外的SOAP-y东西以显示相关位 - 这是<xmlData>传递的部分.注意&quot;周围的参数:

&lt;SEARCHINFO_LIST&gt;&lt;SEARCH_INFO action=&quot;add&quot;
status=&quot;3&quot; name=&quot;TestProfile2&quot; mask=&quot;0&quot; …
Run Code Online (Sandbox Code Playgroud)

.net c# wcf

5
推荐指数
1
解决办法
3595
查看次数

标签 统计

.net ×1

c# ×1

wcf ×1