2014-10-02 1 views
0

У меня есть клиент C#, который вызывает веб-службу webapi (iis 6). Я могу успешно выполнить мои веб-звонки из почтового менеджера - Нет проверки подлинности (вкладка «Обычный»). Не удается выполнить тот же вызов веб-клиента C#.Webrequest возвращает 401, но тот же запрос с использованием почтовых работ

Глядя на запросы в скрипаче, я не вижу разницы между ними.

Ниже представлен запрос, который я отправляю (почтальон и веб-клиент), нет заголовков.

https://store.isswerver.com/api/details/Users - Удается от почтальона клиента

Возвращает 401 с использованием C# клиенту

_client = new WebClient(); 
_client.Headers.Add("Content-Type", "application/json; charset=utf-8"); 
_client.Headers.Add("Accept", "application/json"); 
byte[] data = _client.DownloadData(string.Format("{0}/Users", _apiUrl)); 

клиент делает работу, если я бегу вебсайт на моей локальной машине.

Что отличает почтальон, отправляющий запрос?

+0

HTTP 401 означает «Несанкционированный», поэтому я предполагаю, что вы вошли в систему, когда выполняете запрос через браузер? – pln

+1

Что произойдет, если вы установите _client.UseDefaultCredentials = true? – pln

+0

_client.UseDefaultCredentials = true исправил это, клянусь, я попробовал это Спасибо! – user1127081

ответ

0

Проверьте с помощью сниффера, что почтальон действительно отправляет на проводе и сравнивает его с тем, что вы отправляете за любым вид разницы, как в заголовках, так и в полезной нагрузке.

401 Unauthorized обычно означает, что вы не предоставили аутентификационные данные, однако серверы могут возвращать какой-либо код состояния, который они хотят по какой-либо причине (например, нет ничего, что помешало бы им вернуть статус 401, если им не нравится агент пользователя).

Смежные вопросы