Frage

Ich habe den folgenden Code, der den Proxyserver für lokale Maschine umgehen und dann eine WebRequest senden.

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

Bearbeiten 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";
    }

Jetzt, während ich versuchte, die Ausführung habe ich 403-Fehler. Also habe ich im Serverprotokoll geprüft und feststellen, dass die HTTP / 1.0 Anfrage eine IP 172.24.1.87 kommt, während meine IP 172.24.17.220 ist.

Gibt es eine Möglichkeit, dies zu vermeiden? Ich denke, das die Ursache für Fehler 403 ist.

Bitte Hilfe. Danke,

Subhen

War es hilfreich?

Lösung

Die IP-Adresse ist die Adresse des Proxy ... und Sie die Einstellung die Proxy für die Web-Anfrage, dass Proxy zu sein.

Warum sollte man erwarten, dass es nicht den Proxy zu benutzen?

Beachten Sie, dass Sie Umgehen Anfragen die lokale Maschine, nicht von der lokalen Maschine, wenn das ist dein Punkt der Verwirrung.

EDIT: Wenn Sie wirklich wissen wollen, was los ist, habhaft Wireshark , die Sie lassen sehen, alle Pakete, die von Ihrem Gerät kommen.

Wenn Sie angeben möchten, „keinen Proxy verwenden“, dann so etwas wie:

request.Proxy = GlobalProxySelection.GetEmptyWebProxy();

Andere Tipps

HttpWebRequest hat einen Standardwert für seine Proxy Property dies ist immer das Ergebnis von WebRequest.GetSystemWebProxy (), die die Proxy Sie in IE

konfiguriert ist

Wenn Sie nicht wollen, einen Proxy verwenden, müssen Sie den Standard-Proxy außer Kraft zu setzen

Request = (System.Net.HttpWebRequest)HttpWebRequest.Create(strRootURI); 
Request.Proxy = null;
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top