Ответ 1
попробуйте установить прокси на пустой WebProxy, то есть:
request.Proxy = new WebProxy();
Это должно создать пустой прокси.
Я использую FtpWebRequest для работы с некоторыми файлами FTP, и мне нужно напрямую подключиться (без прокси). Однако WebRequest.DefaultWebProxy содержит настройки прокси-сервера IE (я считаю).
WebRequest request = WebRequest.Create("ftp://someftpserver/");
// request.Proxy is null here so setting it to null does not have any effect
WebResponse response = request.GetResponse();
// connects using WebRequest.DefaultWebProxy
Мой код является частью огромного приложения, и я не хочу изменять WebRequest.DefaultWebProxy
, потому что он является глобальным статическим свойством и может оказать неблагоприятное воздействие на другие части приложения.
Любая идея, как это сделать?
попробуйте установить прокси на пустой WebProxy, то есть:
request.Proxy = new WebProxy();
Это должно создать пустой прокси.
Фактически установка его в значение null будет достаточной, чтобы отключить автоматическое определение прокси, вы можете сэкономить несколько циклов:)
request.Proxy = null;
HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(yourRequestUrl);
if (webRequest.Proxy != null)
{
webRequest.Proxy = null;
}
webRequest.KeepAlive = true;
webRequest.Method = "POST";
webRequest.ContentType = "application/json";
var json = JsonConvert.SerializeObject(yourObject);
ASCIIEncoding encoder = new ASCIIEncoding();
byte[] postBytes = encoder.GetBytes(json);
webRequest.ContentLength = postBytes.Length;
webRequest.CookieContainer = new CookieContainer();
String encoded = System.Convert.ToBase64String(System.Text.Encoding.GetEncoding("ISO-8859-1").GetBytes(string.Format("{0}:{1}", userName, password)));
webRequest.Headers.Add("Authorization", "Basic " + encoded);
Stream requestStream = webRequest.GetRequestStream();
requestStream.Write(postBytes, 0, postBytes.Length);
requestStream.Close();
HttpWebResponse response = (HttpWebResponse)webRequest.GetResponse();
string result;
using (StreamReader rdr = new StreamReader(response.GetResponseStream()))
{
result = rdr.ReadToEnd();
}
Добавьте это в config:
<system.net>
<defaultProxy enabled="false" useDefaultCredentials="false">
<proxy />
<bypasslist />
<module />
</defaultProxy>
</system.net>