HttpWebRequest не работает, но почтальон работает - PullRequest
0 голосов
/ 06 июня 2018

Я пытаюсь получить строку json через WebHttpRequest, используя приведенный ниже код (он пытается вызвать файл, который вернет мне json, который находится в приложении).Это работало на моей машине, но когда я развернул на пользовательском сервере, я получил ошибку

«Базовое соединение было закрыто: при отправке произошла непредвиденная ошибка.».

Я получил ту же ошибку при попытке запустить powershell invoke-webrequest для URL-адреса, но странно, что он прекрасно работает, когда я использую Postman (get или post) для URL-адреса, внутри или снаружи пользовательского сервера.

HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.UseDefaultCredentials = true;
request.PreAuthenticate = true;
request.Credentials = CredentialCache.DefaultCredentials;
request.ContentType = "application/json";

HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream resStream = response.GetResponseStream();
StreamReader reader = new StreamReader(resStream);
String jsonResponse = reader.ReadToEnd();

Я также пытался использовать другой метод (WebClient) для получения URL-адреса, но он также не работал.

String jsonResponse = null;
using (var webClient = new WebClient())
{
    jsonResponse = webClient.DownloadString(url);
}

Полная ошибка, которую я получаю для исключения:

Удаленный сервер возвратил ошибку: (401) Не авторизован.Система в System.Net.HttpWebRequest.GetResponse ()

У кого-нибудь есть идеи?

Спасибо.

1 Ответ

0 голосов
/ 06 июня 2018

Я думаю, что это может быть ваш случай "Базовое соединение было закрыто: при отправке произошла непредвиденная ошибка".С сертификатом SSL

Похоже, вам нужно будет установить ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;

Кстати, у вас есть в вашем коде:

request.UseDefaultCredentials = true; request.PreAuthenticate = true; request.Credentials = CredentialCache.DefaultCredentials;

Так что такое полномочия?Это сетевые учетные данные, такие как учетные данные AD?Есть ли разрешение на доступ к этому серверу?

...