इसे इस्तेमाल करे:
try { $response = Invoke-WebRequest http:
$_.Exception.Response.StatusCode.Value__}
यह एक बुमेर की तरह है कि यह एक अपवाद फेंकता है लेकिन यह तरीका है।
प्रति टिप्पणी अपडेट करें
यह सुनिश्चित करने के लिए कि ऐसी त्रुटियां अभी भी एक वैध प्रतिक्रिया देती हैं, आप प्रकार के उन अपवादों को पकड़ सकते हैं WebException
और संबंधित को प्राप्त कर सकते हैं Response
।
चूंकि अपवाद पर प्रतिक्रिया प्रकार की है System.Net.HttpWebResponse
, जबकि एक सफल Invoke-WebRequest
कॉल से प्रतिक्रिया प्रकार की है Microsoft.PowerShell.Commands.HtmlWebResponseObject
, दोनों परिदृश्यों से एक संगत प्रकार को वापस करने के लिए हमें सफल प्रतिक्रिया लेने की आवश्यकता है BaseResponse
, जो कि प्रकार का भी है System.Net.HttpWebResponse
।
इस नए प्रतिक्रिया प्रकार की स्थिति कोड [system.net.httpstatuscode]
एक साधारण पूर्णांक के बजाय एक प्रकार की पहेली है, इसलिए आपको यह पता लगाना होगा कि इसे इंट में परिवर्तित करना है, या Value__
संख्यात्मक कोड प्राप्त करने के लिए ऊपर वर्णित संपत्ति तक पहुंच है ।
$response = try {
(Invoke-WebRequest -Uri 'localhost/foo' -ErrorAction Stop).BaseResponse
} catch [System.Net.WebException] {
Write-Verbose "An exception was caught: $($_.Exception.Message)"
$_.Exception.Response
}
$statusCodeInt = [int]$response.BaseResponse.StatusCode
$statusCodeInt = $response.BaseResponse.StatusCode.Value__