Ответ dlev закончил работу, но у меня возникли проблемы с реализацией решения («Параметр« {0} »не может быть пустой строкой.), поэтому я решил написать полный код, если у кого-то еще есть подобные проблемы.
Моя цель состояла в том, чтобы получить html в виде строки, но мне нужно было добавить файлы cookie в веб-запрос. Это функция, которая загружает строку с помощью файлов cookie:
public static string DownloadString(string url, Encoding encoding, IDictionary<string, string> cookieNameValues)
{
using (var webClient = new WebClient())
{
var uri = new Uri(url);
var webRequest = WebRequest.Create(uri);
foreach(var nameValue in cookieNameValues)
{
webRequest.TryAddCookie(new Cookie(nameValue.Key, nameValue.Value, "/", uri.Host));
}
var response = webRequest.GetResponse();
var receiveStream = response.GetResponseStream();
var readStream = new StreamReader(receiveStream, encoding);
var htmlCode = readStream.ReadToEnd();
return htmlCode;
}
}
Мы используем код из ответа dlev:
public static bool TryAddCookie(this WebRequest webRequest, Cookie cookie)
{
HttpWebRequest httpRequest = webRequest as HttpWebRequest;
if (httpRequest == null)
{
return false;
}
if (httpRequest.CookieContainer == null)
{
httpRequest.CookieContainer = new CookieContainer();
}
httpRequest.CookieContainer.Add(cookie);
return true;
}
Вот как вы используете полный код:
var cookieNameValues = new Dictionary<string, string>();
cookieNameValues.Add("varName", "varValue");
var htmlResult = DownloadString(url, Encoding.UTF8, cookieNameValues);
Вы можете проверить значение переменной ASPNETCORE_ENVIRONMENT, используя метод IHostingEnvironment::IsProduction
, если у вас есть IHostingEnvironment в вашей области, или статическим методом System.GetEnvironmentVariable ("ASPNETCORE_ENVIRONMENT")