如何使用C#类中的POST类型调用WCF方法?
WCF方法
[OperationContract]
[WebInvoke(Method = "POST",
UriTemplate = "/process",
RequestFormat = WebMessageFormat.Json,
ResponseFormat = WebMessageFormat.Json,
BodyStyle = WebMessageBodyStyle.Wrapped)]
MyRespons Process(MyRequest req);
如何从aspx代码隐藏中调用它?
我尝试使用webclient接收流,它适用于任何get方法,但不适用于POST。该方法适用于Fiddler和POSTER:
string getDeclarations = string.Format("{0}/process", ServiceBaseAddress);
var proxy = new WebClient();
proxy.DownloadStringCompleted += ProxyDownloadDeclarationsCompleted;
proxy.DownloadStringAsync((new Uri(getDeclarations)));
答案 0 :(得分:2)
您是否尝试在项目中为要使用WCF服务的WCF服务添加服务引用?
为此,请在解决方案资源管理器中右键单击您的项目,然后选择添加服务引用。然后输入您的WCF服务的URL,并在使用对象和方法引用任何其他DLL或项目时使用它。
答案 1 :(得分:1)
您可以使用jQuery执行此操作。这里有一个great example供您使用。
这是一个示例代码块。
$.ajax({
cache: false,
type: "POST",
async: false,
url: /* YOUR URL */,
data: JSON.stringify(/* YOUR POST DATA */),
contentType: "application/json",
dataType: "json",
success: function (response) {
/* SUCCESS FUNCTION */
},
error: function (error) {
/* ERROR FUNCTION */
}
});
以下是使用WebClient
执行POST
的Stackoverflow示例的reference。