Bạn có thể tìm ra bằng cách dịch ngược cụm Microsoft.PowerShell.Commands.Utility
.
Về cơ bản, Invoke-WebRequest
không đối phó với việc phân tích dữ liệu nhiều như vậy. Với -UseBasicParsing
, nó thực hiện một số phân tích HTML dựa trên Regex. Nếu không có công tắc này, nó sẽ sử dụng API COM của Internet Explorer để phân tích tài liệu.
Đó là nó. Nó sẽ luôn cố phân tích HTML.
Invoke-RestMethod
mặt khác có mã để hỗ trợ nội dung JSON và XML. Nó sẽ cố gắng phát hiện một bộ giải mã thích hợp. Nó không hỗ trợ HTML (tất nhiên trừ HTML tuân thủ XML).
Cả hai đều có chung logic cốt lõi để thực hiện yêu cầu HTTP thực tế. Chỉ trong xử lý kết quả mà chúng khác nhau.
Nhìn thấy là tin tưởng!
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