3

如何从 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))); 
4

2 回答 2

2

您是否尝试在要使用 WCF 服务的项目中添加对 WCF 服务的服务引用?
为此,请在解决方案资源管理器中右键单击您的项目,然后选择添加服务引用。然后输入您的 WCF 服务的 URL,您可以使用它,因为您使用对象和方法引用任何其他 DLL 或项目。

于 2012-08-10T12:44:36.893 回答
1

您可以使用 jQuery 来做到这一点。这是一个很好的例子供你使用。

这是一个示例代码块。

$.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 */
    }
});

已编辑

这是对 Stackoverflow 示例的参考WebClient,用于执行POST.

于 2012-08-10T12:32:20.547 回答