Στείλτε αιτήματα .NET HttpClient μέσω proxy
Ρυθμίστε WebProxy σε HttpClientHandler και αποφύγετε απενεργοποιημένη δρομολόγηση proxy ή σύνδεση με λάθος πελάτη.
Το αίτημα πρέπει να χρησιμοποιεί το HttpClient που δημιουργήθηκε με τον χειριστή proxy σας. Η δημιουργία άσχετου αντικειμένου WebProxy δεν επηρεάζει τη διαδρομή άλλου πελάτη.
using System;
using System.Net;
using System.Net.Http;
var proxy = new WebProxy("http://203.0.113.10:8080")
{
BypassProxyOnLocal = false
};
using var handler = new HttpClientHandler
{
Proxy = proxy,
UseProxy = true
};
using var client = new HttpClient(handler)
{
Timeout = TimeSpan.FromSeconds(15)
};
using var response = await client.GetAsync("https://example.com/");
Console.WriteLine((int)response.StatusCode);
Console.WriteLine(await response.Content.ReadAsStringAsync());Αντικαταστήστε τη διεύθυνση τεκμηρίωσης με πραγματικό HTTP proxy της υπηρεσίας σας ή από τη λίστα HTTP proxy. Αυτή η σύνταξη ανώτατου επιπέδου ταιριάζει σε σύγχρονο έργο κονσόλας C#· παλιότερα έργα μπορούν να βάλουν τις εντολές σε ασύγχρονο Main.
Ελέγξτε και τις δύο ιδιότητες του χειριστή: το Proxy επιλέγει το τελικό σημείο και το UseProxy=true ενεργοποιεί τη χρήση του. Αν το σημείο λειτουργεί χωριστά αλλά όχι στην εφαρμογή, επιβεβαιώστε ότι κανένας κώδικας δεν απενεργοποιεί το UseProxy και ότι η κλήση χρησιμοποιεί αυτό το στιγμιότυπο. Ο αποκλειστικός χειριστής αποφεύγει εξάρτηση από τον εντοπισμό της διεργασίας ή του λειτουργικού συστήματος.
Όταν ο διαχειριστής του proxy παρέχει λογαριασμό, αναθέστε ένα NetworkCredential στην ιδιότητα WebProxy.Credentials. Το Authorization του ιστοτόπου αφορά διαφορετικό βήμα και μια δημόσια εγγραφή IP:port δεν παρέχει προεπιλεγμένα στοιχεία σύνδεσης. Ένας ακροατής http:// μπορεί να μεταφέρει HTTPS μέσω σήραγγας· διατηρήστε την κανονική επαλήθευση προορισμού.
Το σύντομο πρόγραμμα αποδεσμεύει τα αντικείμενα κατά την έξοδο. Για επαναλαμβανόμενες κλήσεις υπηρεσίας, ακολουθήστε τις οδηγίες .NET για τη διάρκεια ζωής πελάτη και κρατήστε πελάτη/χειριστή για τον φόρτο αντί να ξαναχτίζετε τις δεξαμενές συνδέσεων ανά αίτημα. Εξετάστε την επιστρεφόμενη κατάσταση: μια λειτουργική διαδρομή proxy μπορεί ακόμη να μεταφέρει άρνηση ιστοτόπου.