HTTP GET的cURL命令

时间:2016-01-07 18:32:55

标签: web-services curl

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

    [OperationContract]
    [WebInvoke(Method = "GET", UriTemplate = "doWork")]
    public Stream DoWork()
    {
        return new MemoryStream(Encoding.UTF8.GetBytes("<html><body>WORK DONE</body></html>"));
    }

我已经编写了一个fiddler请求,只是为了验证我的方法是否可用。

enter image description here

如果我从fiddler执行此操作,我的Web服务中的方法将被调用。但我似乎无法弄清楚如何构建一个可以做同样事情的cURL命令。

1 个答案:

答案 0 :(得分:0)

最简单的方法可能是让Chrome为您创建curl命令行,尤其是当请求涉及许多标题和复杂的POST数据时。

F12 打开开发人员工具,然后转到Network。然后运行您要监控的任何呼叫。 (在我的示例中,您可以看到当您在堆栈溢出时打开问题时会发生什么)

enter image description here

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

enter image description here

这将为您提供类似于此的命令行:

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以查看更多详细信息,有关命令的详细说明,请参阅manual。 也许您需要添加到现有curl命令行的是那些特定于浏览器的标题(User-Agent,Accept,...)