使用C#调用Restful WCF POST方法

时间:2012-08-10 12:09:12

标签: c# wcf

如何使用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))); 

2 个答案:

答案 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