如何将xml参数发送到WCF?
Posted
技术标签:
【中文标题】如何将xml参数发送到WCF?【英文标题】:how to send xml parameter to WCF? 【发布时间】:2013-06-20 00:00:20 【问题描述】:如何发送xml参数调用WCF
方法?我的客户端代码在AJAX,JSON
中使用jQuery。我想将xml 值作为参数传递。如何传递xml 值?
我的 xml 值是
<value><Root>mydata</Root></value>
我的客户端代码--
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script type="text/javascript" src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.5.1.min.js"></script>
<script type="text/javascript" >
jQuery.support.cors = true;
var bhRequest = "<s:Envelope xmlns:s=\"http://schemas.xmlsoap.org/soap/envelope/\">" +
"<s:Body>" +
"<GetSMC xmlns=\"http://tempuri.org/\">" +
"<value><Root>MyValue</Root></value>" +
"</GetSMC>" +
"</s:Body>" +
"</s:Envelope>";
$(document).ready(function ()
$("#btnWCFBasicHttp").click(function ()
alert("hi");
$.ajax(
type: "POST",
url: "http://localhost:8130/MyService.svc/bh/",
data: bhRequest,
timeout: 10000,
contentType: "text/xml",
dataType: "xml",
beforeSend: function (xhr)
xhr.setRequestHeader("SOAPAction", "http://tempuri.org/IMyService/GetSMC");
,
success: function (data)
alert("success");
$(data).find("GetSMCResponse").each(function ()
document.getElementById('Label2').innerHTML = $(this).find("GetSMCResult").text();
);
,
error: function (xhr, status, error)
alert(error);
);
);
);
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<input id="btnWCFREST" type="button" value="Call WCF using JQuery" />
<label ID="Label1" runat="server" Text="Label"></label>
</div>
</form>
</body>
</html>
【问题讨论】:
【参考方案1】:我不确定它是否会起作用,但请尝试将 XML 放入其中<![CDATA[
和 ]]>
字符串标签也有一些hack,但我不知道是否有必要(也许只有CDATA标签就足够了):WCF RESTFul service - Pass XML as string to service
【讨论】:
会发生什么?没有 XML 它可以工作吗?该参数的类型是什么? 我将字符串作为参数传递。它将接受“how to pass full xml string
同样的方式:-)?在 CDATA 标记内? and get that xml string in result
我不明白? WCF 服务将 XML 作为字符串返回应该没有问题。【参考方案2】:
你将通过base64加密并传递它,在服务器客户端你可以解密
【讨论】:
以上是关于如何将xml参数发送到WCF?的主要内容,如果未能解决你的问题,请参考以下文章