2016-01-07 108 views
0

我有一個包含方法DoWork()的Web服務。此方法將用於從數據庫檢索數據並將數據以JSON格式傳回給調用者。HTTP GET的cURL命令

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

我編寫了一個提琴手請求只是爲了驗證我的方法是否可用。

enter image description here

如果我執行這個從小提琴手,在我的web服務的方法被調用。但我似乎無法弄清楚如何構建一個可以做同樣事情的cURL命令。

+0

向我們展示你試過的curl命令和你得到的回覆 –

+2

使用chrome和do網絡跟蹤。有一個選項可以創建捕獲的線到curl調用 – Marged

回答

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,...)