Question

Je le code suivant qui contournent le serveur proxy pour la machine locale, puis envoyer un WebRequest.

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

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

Maintenant, alors que j'ai essayé d'exécuter je suis arrivé erreur 403. Alors j'ai vérifié dans le journal du serveur et trouve que la requête HTTP / 1.0 est la forme à venir un 172.24.1.87 IP alors que mon IP est 172.24.17.220.

Y at-il un moyen d'éviter cela? Je pense que cela est la cause principale de 403 erreur.

S'il vous plaît aider. Merci,

Subhen

Était-ce utile?

La solution

Cette adresse IP est l'adresse de votre proxy ... et vous configurez le proxy pour la requête Web soit que proxy.

Pourquoi voudriez-vous attendre de ne pas utiliser le proxy?

Notez que vous demandes de contournement la machine locale, pas de la machine locale, si cela était votre point de confusion.

EDIT: Si vous voulez vraiment savoir ce qui se passe, mettre la main sur Wireshark qui vous permettra de voir tous les les paquets provenant de votre machine.

Si vous voulez spécifier « ne pas utiliser un proxy » faire quelque chose comme:

request.Proxy = GlobalProxySelection.GetEmptyWebProxy();

Autres conseils

HttpWebRequest a une valeur par défaut pour la propriété Proxy ce qui est toujours le résultat de WebRequest.GetSystemWebProxy () qui est le proxy configuré dans IE

si vous ne voulez pas utiliser un proxy que vous devez remplacer le proxy par défaut

Request = (System.Net.HttpWebRequest)HttpWebRequest.Create(strRootURI); 
Request.Proxy = null;
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top