आप Microsoft.PowerShell.Commands.Utility
विधानसभा को विघटित करके पता लगा सकते हैं ।
मूल रूप से, Invoke-WebRequest
डेटा को अधिक से अधिक पार्स करने से नहीं निपटता है। इसके साथ -UseBasicParsing
, यह कुछ रेगेक्स-आधारित HTML पार्सिंग करता है। इस स्विच के बिना, यह दस्तावेज़ को पार्स करने के लिए इंटरनेट एक्सप्लोरर COM एपीआई का उपयोग करेगा।
बस। यह हमेशा HTML को पार्स करने का प्रयास करेगा।
Invoke-RestMethod
दूसरी ओर JSON और XML सामग्री का समर्थन करने के लिए कोड है। यह एक उपयुक्त डिकोडर का पता लगाने का प्रयास करेगा। यह HTML का समर्थन नहीं करता है (XML- अनुरूप HTML को छोड़कर, निश्चित रूप से)।
दोनों वास्तविक HTTP अनुरोध बनाने के लिए एक ही मूल तर्क साझा करते हैं। यह केवल परिणाम प्रसंस्करण में है कि वे अलग हैं।
देखकर ही विश्वास किया जा सकता है!
PS C:\Users\fuzzy> (Invoke-RestMethod https://httpbin.org/headers).headers
Connection Host User-Agent
---------- ---- ----------
close httpbin.org Mozilla/5.0 (Windows NT; Windows NT 10.0; de-DE) WindowsPowerShell/5.1.15063.483
PS C:\Users\fuzzy> Invoke-WebRequest -UseBasicParsing https://httpbin.org/headers
StatusCode : 200
StatusDescription : OK
Content : {
"headers": {
"Connection": "close",
"Host": "httpbin.org",
"User-Agent": "Mozilla/5.0 (Windows NT; Windows NT 10.0; de-DE)
WindowsPowerShell/5.1.15063.483"
}
}
RawContent : HTTP/1.1 200 OK
Connection: keep-alive
Access-Control-Allow-Origin: *
Access-Control-Allow-Credentials: true
X-Processed-Time: 0.00075101852417
Content-Length: 180
Content-Type: application/json...
Forms :
Headers : {[Connection, keep-alive], [Access-Control-Allow-Origin, *], [Access-Control-Allow-Credentials,
true], [X-Processed-Time, 0.00075101852417]...}
Images : {}
InputFields : {}
Links : {}
ParsedHtml :
RawContentLength : 180