Web services 用于HTTP GET的cURL命令

Web services 用于HTTP GET的cURL命令,web-services,curl,Web Services,Curl,我有一个包含DoWork()方法的web服务。此方法将用于从数据库检索数据,并以JSON格式将数据传递回调用方 [OperationContract] [WebInvoke(Method = "GET", UriTemplate = "doWork")] public Stream DoWork() { return new MemoryStream(Encoding.UTF8.GetBytes("<html><body>W

我有一个包含DoWork()方法的web服务。此方法将用于从数据库检索数据,并以JSON格式将数据传递回调用方

    [OperationContract]
    [WebInvoke(Method = "GET", UriTemplate = "doWork")]
    public Stream DoWork()
    {
        return new MemoryStream(Encoding.UTF8.GetBytes("<html><body>WORK DONE</body></html>"));
    }
[运营合同]
[WebInvoke(Method=“GET”,UriTemplate=“doWork”)]
公共流道工()
{
返回新的MemoryStream(Encoding.UTF8.GetBytes(“工作完成”);
}
我编写了一个fiddler请求,只是为了验证我的方法是否可用


如果我从fiddler执行此操作,将调用web服务中的方法。但是我似乎不知道如何构造一个cURL命令来做同样的事情。

也许最简单的方法是让Chrome为您创建cURL命令行,特别是当请求涉及许多标题和复杂的POST数据时

按F12并转到
网络
打开开发人员工具。然后运行您想要监视的任何呼叫。 (在我的示例中,您可以看到在这里打开有关堆栈溢出的问题时会发生什么)

然后右键单击相关行并选择
复制为cURL(cmd)
(如果您在Windows上)(对于Linux,使用另一个)

这将为您提供类似以下内容的命令行:

curl "http://stackoverflow.com/questions" -H "Accept-Encoding: gzip, deflate, sdch" -H "Accept-Language: de-DE,de;q=0.8,en-US;q=0.6,en;q=0.4" -H "Upgrade-Insecure-Requests: 1" -H "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.106 Safari/537.36" -H "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8" -H "Referer: ..." -H "Cookie: ..." -H "Connection: keep-alive" --compressed
如果遇到问题,应添加
-v
以查看更多详细信息,有关命令的详细说明,请参见。
也许您需要添加到现有的curl命令行中的只是那些特定于浏览器的标题(用户代理、接受等)

告诉我们您尝试了哪些curl命令,以及使用chrome和进行网络跟踪得到了哪些响应。有一个选项可以创建curl调用的捕获行