ಪ್ರಾಕ್ಸಿ ವಿನಂತಿಗಳ ನಡುವೆ HttpWebRequest ಪ್ರತಿಕ್ರಿಯೆಗಳನ್ನು ಇತ್ಯರ್ಥ ಮಾಡಿ
ಹಳೆಯ HttpWebRequest ಪ್ರತಿಕ್ರಿಯೆಗಳಿಗೆ ಸ್ಪಷ್ಟ ಜೀವಿತಾವಧಿ ನೀಡಿ, ಪುನರಾವರ್ತಿತ ಪ್ರಾಕ್ಸಿ ವಿನಂತಿಗಳು ಸಂಪರ್ಕ ಸಂಪನ್ಮೂಲಗಳನ್ನು ಅನಿರ್ದಿಷ್ಟವಾಗಿ ಹಿಡಿದಿಟ್ಟುಕೊಳ್ಳದಂತೆ.
using (WebResponse response = request.GetResponse())
{
response.GetResponseStream().CopyTo(destination);
}
ಪ್ರತಿ ಹಳೆಯ HttpWebRequest ಪ್ರತಿಕ್ರಿಯೆಯನ್ನು ಅದರ ಬಳಕೆಯನ್ನು ಮುಗಿಸಿ ಬಿಡುಗಡೆ ಮಾಡುವ ವ್ಯಾಪ್ತಿಯಲ್ಲಿ ಇರಿಸಿ. ಇಲ್ಲಿ destination ಅಪ್ಲಿಕೇಶನ್ನ ಬರೆಯಬಹುದಾದ ಔಟ್ಪುಟ್ ಸ್ಟ್ರೀಮ್; ನಕಲು ವಿಫಲವಾದರೂ using ಬ್ಲಾಕ್ WebResponse ಅನ್ನು ಬಿಡುಗಡೆ ಮಾಡುತ್ತದೆ, ಆ ಔಟ್ಪುಟ್ನ ಮಾಲೀಕತ್ವವನ್ನು ತೆಗೆದುಕೊಳ್ಳದೆ.
ಒಂದು ಪ್ರಾಕ್ಸಿ ವಿನಂತಿ ಯಶಸ್ವಿಯಾಗಿ ನಂತರದವು ಕಾಯುತ್ತಿರುವುದು ಅಪೂರ್ಣ ಪ್ರತಿಕ್ರಿಯೆಗಳು ಸಂಪರ್ಕ ಸಂಪನ್ಮೂಲಗಳನ್ನು ಆಕ್ರಮಿಸಿಕೊಂಡಿರುವ ಸೂಚನೆಯಾಗಿರಬಹುದು. ಕೇವಲ WebResponse ಸ್ವೀಕರಿಸುವುದು ಅದರ ಬಾಡಿಯನ್ನು ಮುಗಿಸುವುದಿಲ್ಲ. ವಿನಂತಿಯ ಕಾಲಮಿತಿ ಕಾಯುವಿಕೆಯನ್ನು ಮಿತಿಗೊಳಿಸುತ್ತದೆ, ಈಗಾಗಲೇ ಪಡೆದ ಪ್ರತಿ ಪ್ರತಿಕ್ರಿಯೆಯ ಜೀವಿತಾವಧಿಯನ್ನಲ್ಲ.
ದೋಷಗಳಿಗೂ ಅದೇ ಮಾಲೀಕತ್ವ ಅನ್ವಯಿಸಿ. WebException ನಿಮ್ಮ ಕೋಡ್ ಪರಿಶೀಲಿಸುವ ಪ್ರತಿಕ್ರಿಯೆಯನ್ನು ಹೊತ್ತಿರಬಹುದು; ಪರಿಶೀಲನೆಯ ನಂತರ ಅದನ್ನು ಮುಚ್ಚಿ. ಸಾಗಣೆ ವೈಫಲ್ಯಕ್ಕೆ ಪ್ರತಿಕ್ರಿಯೆಯೇ ಇಲ್ಲದಿರಬಹುದು.
ಇತ್ಯರ್ಥವು ಪ್ರತಿಕ್ರಿಯೆಯ ಸಂಪನ್ಮೂಲಗಳನ್ನು ಹಿಂತಿರುಗಿಸುತ್ತದೆ ಆದರೆ ಪ್ರತಿ ಸಂದರ್ಭದಲ್ಲೂ ಮರುಬಳಕೆ ಮಾಡಬಹುದಾದ ಸಂಪರ್ಕಗಳನ್ನು ಭರವಸೆ ನೀಡುವುದಿಲ್ಲ. ಪ್ರೋಟೋಕಾಲ್, ಸರ್ವರ್ ಮತ್ತು ಬಾಡಿ ಬಳಕೆ ಇನ್ನೂ ಮುಖ್ಯ.
ಇದು ಹಳೆಯ WebRequest ಸ್ಟ್ಯಾಕ್ನ ನಿರ್ವಹಣೆಗೆ ಸಂಬಂಧಿಸಿದೆ. ಹೊಸ ಕೋಡ್ನಲ್ಲಿ ನಿಜವಾದ ಕ್ಲೈಂಟ್ನ ಪ್ರತಿಕ್ರಿಯೆ/ಸ್ಟ್ರೀಮ್ ಮಾಲೀಕತ್ವವನ್ನು ಅನುಸರಿಸಿ; HttpClient ಗಾಗಿ, ಪ್ರತಿಕ್ರಿಯೆಗಳನ್ನು ಅವುಗಳ ಇತ್ಯರ್ಥ ವ್ಯಾಪ್ತಿಯಲ್ಲಿ ಇರಿಸಿ, ಮತ್ತು ಈ ಸ್ವಚ್ಛಗೊಳಿಸುವಿಕೆ ವೈಫಲ್ಯವನ್ನು ಪ್ರಾಕ್ಸಿ ದೃಢೀಕರಣ ಅಥವಾ ಮಾರ್ಗ ಆಯ್ಕೆಯಿಂದ ಪ್ರತ್ಯೇಕವಾಗಿ ಗುರುತಿಸಿ.