C# 用C调用Restful WCF POST方法

C# 用C调用Restful WCF POST方法,c#,wcf,C#,Wcf,如何从C类调用具有POST类型的WCF方法 WCF法 [OperationContract] [WebInvoke(Method = "POST", UriTemplate = "/process", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBody

如何从C类调用具有POST类型的WCF方法

WCF法

[OperationContract]
[WebInvoke(Method = "POST",
           UriTemplate = "/process",
           RequestFormat = WebMessageFormat.Json,
           ResponseFormat = WebMessageFormat.Json,
           BodyStyle = WebMessageBodyStyle.Wrapped)]
MyRespons Process(MyRequest req);
我怎么能从aspx codebehind中调用它

我曾尝试使用webclient接收流,它可以使用任何get方法,但不能使用POST。该方法适用于Fiddler和POSTER:

string getDeclarations = string.Format("{0}/process", ServiceBaseAddress);
var proxy = new WebClient();
proxy.DownloadStringCompleted += ProxyDownloadDeclarationsCompleted;
proxy.DownloadStringAsync((new Uri(getDeclarations))); 

您可以使用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 */
    }
});
编辑
下面是一个使用WebClient执行POST的Stackoverflow示例。

您是否尝试在希望使用WCF服务的项目中向WCF服务添加服务引用?
要执行此操作,请在解决方案资源管理器中右键单击项目,然后选择“添加服务引用”。然后输入你的WCF服务的URL,你就可以在引用任何其他DLL或项目时使用它了。

谢谢Mike,有没有办法用C、aspx codebehind实现同样的功能?@Gino:但你确实要求用.aspx,而不是.cs。尽量在问题中更具体,而不是在评论中-@Thomas-我的问题是:如何使用C类中的POST类型调用WCF方法?但我以aspx页面结束了它。现在是对的。谢谢谢谢迈克,这正是我所需要的。没问题,很高兴我能帮上忙。是的,蒂姆,那会解决问题的:。但是有可能通过调用链接从C代码后面调用POST方法吗?看看HttpRequest并将HttpMethod设置为“POST”。@Gino-我不确定您是否完全理解该技术,所以让我尝试并帮助您。蒂姆成功地回答了你的问题。添加一个服务引用,然后在链接的Click事件中调用该服务以获得响应。你不呼叫链接,这有意义吗?@Mike-我不知道你指的是什么技术。通过添加服务引用,我将完全控制WCF服务。我的问题是,使用WebClient无法调用POST方法。我将TimVK的答案标记为正确,因为它回答了我的问题。@DanielA.White-我编辑了这篇文章。