Πρέπει το httpclient να είναι παροδικό ή απλό;

Πίνακας περιεχομένων:

Πρέπει το httpclient να είναι παροδικό ή απλό;
Πρέπει το httpclient να είναι παροδικό ή απλό;

Βίντεο: Πρέπει το httpclient να είναι παροδικό ή απλό;

Βίντεο: Πρέπει το httpclient να είναι παροδικό ή απλό;
Βίντεο: Εισαγωγή στον πίνακα ανάπτυξης WiFi NodeMCU ESP8266 με παράδειγμα HTTP Client 2024, Νοέμβριος
Anonim

Η κλάση HttpClient είναι πιο κατάλληλη ως singleton για έναν τομέα μεμονωμένης εφαρμογής. Αυτό σημαίνει ότι το singleton θα πρέπει να είναι κοινόχρηστο σε πολλές κατηγορίες κοντέινερ. Με αυτήν την τακτική, όντως αποκτάτε ένα singleton, αλλά αυτό καθιστά δύσκολο να το μοιραστείτε. Η κλάση HttpClient υλοποιεί τη διεπαφή IDisposable.

Θα πρέπει να δημιουργήσουμε μια νέα μεμονωμένη παρουσία του HttpClient για όλα τα αιτήματα;

Αν και υλοποιεί τη διεπαφή IDisposable, είναι στην πραγματικότητα ένα κοινόχρηστο αντικείμενο. Αυτό σημαίνει ότι κάτω από τα καλύμματα είναι ασφαλές για επανεισαγωγή και νήμα. Αντί να δημιουργείτε μια νέα παρουσία του HttpClient για κάθε εκτέλεση, θα πρέπει να μοιράζεστε ένα μεμονωμένο στιγμιότυπο του HttpClient για όλη τη διάρκεια ζωής της εφαρμογής.

Θα πρέπει να επαναχρησιμοποιήσετε το

Το

HttpClient έχει προορίζεται να δημιουργηθεί μία φορά και να χρησιμοποιηθεί ξανά καθ' όλη τη διάρκεια ζωής μιας εφαρμογής. Η δημιουργία μιας κλάσης HttpClient για κάθε αίτημα θα εξαντλήσει τον αριθμό των διαθέσιμων υποδοχών υπό μεγάλα φορτία. Αυτό θα οδηγήσει σε σφάλματα SocketException.

Δεν διαχειρίζεται το

Αν και το HttpClient υλοποιεί έμμεσα τη διεπαφή IDisposable, η τυπική χρήση του HttpClient είναι να μην το απορρίπτετε μετά από κάθε αίτημα. Το αντικείμενο HttpClient προορίζεται να ζει για όσο χρόνο χρειάζεται η εφαρμογή σας για να υποβάλει αιτήματα

Είναι το HttpClient ασφαλές για νήματα;

Το HttpClient είναι πλήρως ασφαλές σε νήματα όταν το χρησιμοποιείται με έναν διαχειριστή σύνδεσης ασφαλούς νήματος, όπως το MultiThreadedHttpConnectionManager. … Ταυτόχρονα, η παρουσία HttpClient και ο διαχειριστής σύνδεσης θα πρέπει να είναι κοινόχρηστοι μεταξύ όλων των νημάτων για μέγιστη απόδοση.

Συνιστάται: