WebRequest генерируется с другого IP вместо моего системного IP? - PullRequest
0 голосов
/ 28 июня 2010

У меня есть следующий код, который пропускает прокси-сервер для локальной машины, а затем отправляет веб-запрос.

                System.Net.HttpWebRequest Request;
                System.Net.WebResponse Response;
                System.Net.CredentialCache MyCredentialCache;

Изменить 1

//System.Net.WebProxy proxyObject = new WebProxy("http://172.24.1.87:8080",true);

            string strRootURI = "http://172.24.18.240/webdav/";
            string strUserName = "UsName";
            string strPassword = "Pwd";
           // string strDomain = "Domain";
            string strQuery = "";
            byte[] bytes = null;
            System.IO.Stream RequestStream = null;
            System.IO.Stream ResponseStream = null;
            System.Xml.XmlTextReader XmlReader = null;

            try
            {
                // Build the SQL query.
                strQuery = "myWebDavVerb";

                // Create a new CredentialCache object and fill it with the network
                // credentials required to access the server.
                MyCredentialCache = new System.Net.CredentialCache();
                MyCredentialCache.Add(new System.Uri(strRootURI), "Basic", new System.Net.NetworkCredential(strUserName, strPassword));//, strDomain)


                // Create the HttpWebRequest object.
                Request = (System.Net.HttpWebRequest)HttpWebRequest.Create(strRootURI);


                // Add the network credentials to the request.
                Request.Credentials = MyCredentialCache;

                      // Request.Proxy = proxyObject;
                    // Specify the method.
                    Request.Method = "PROPFIND";
    }

Теперь,пока я пытался выполнить, я получил ошибку 403.Поэтому я проверил в журнале сервера и обнаружил, что запрос HTTP / 1.0 приходит с IP 172.24.1.87, в то время как мой IP 172.24.17.220.

Есть ли способ избежать этого?Я думаю, что это коренная причина ошибки 403.

Пожалуйста, помогите.Спасибо,

Субхен

Ответы [ 2 ]

2 голосов
/ 28 июня 2010

Этот IP-адрес является адресом вашего прокси-сервера ... и вы устанавливаете прокси-сервер для веб-запроса в качестве этого прокси.

Почему вы не хотите использовать прокси?

Обратите внимание, что вы обходите запросы на локального компьютера, а не с локального компьютера, если это было вашей путаницей.

РЕДАКТИРОВАТЬ: Если вы действительно хотите знать, что происходит, получите Wireshark , который позволит вам увидеть все пакеты, поступающие с вашего компьютера.

Если вы хотите указать «не использовать прокси», сделайте что-то вроде:

request.Proxy = GlobalProxySelection.GetEmptyWebProxy();
1 голос
/ 28 июня 2010

HttpWebRequest имеет значение по умолчанию для своего свойства Proxy, это всегда результат WebRequest.GetSystemWebProxy (), который является прокси, который вы настроили в IE

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

Request = (System.Net.HttpWebRequest)HttpWebRequest.Create(strRootURI); 
Request.Proxy = null;
...