我有一个包含方法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请求,只是为了验证我的方法是否可用。
如果我从fiddler执行此操作,我的Web服务中的方法将被调用。但我似乎无法弄清楚如何构建一个可以做同样事情的cURL命令。
答案 0 :(得分:0)
最简单的方法可能是让Chrome为您创建curl命令行,尤其是当请求涉及许多标题和复杂的POST数据时。
按 F12 打开开发人员工具,然后转到Network
。然后运行您要监控的任何呼叫。
(在我的示例中,您可以看到当您在堆栈溢出时打开问题时会发生什么)
然后右键单击相关行并选择copy as 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
以查看更多详细信息,有关命令的详细说明,请参阅manual。
也许您需要添加到现有curl命令行的是那些特定于浏览器的标题(User-Agent,Accept,...)