2016-01-07 3 views
0

У меня есть веб-служба, содержащая метод DoWork(). Этот метод будет использоваться для извлечения данных из базы данных и передачи данных обратно вызывающему в формате JSON.Команда cURL для HTTP GET

[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

если я исполняю это от скрипача, метод в моем веб-службы вызывается. Но я не могу понять, как построить команду cURL, которая будет делать то же самое.

+0

Покажите нам, какие команды завитка вы пытались и какие ответы вы получили –

+2

Используйте хром и сделайте сетевой трассировки. Существует возможность создать захваченную линию для зависания вызова – 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, ...)