Invoke-WebRequest
Powershell이 전화해야 할 긴 웹 페이지가 있습니다.태스크 관리자에서 매일 밤 다음과 같이 실행합니다.
powershell -Command "Invoke-WebRequest https://www.example.com/longrunningtask"
웹 사이트가 응답하기 전에 파워셸 시간 초과가 발생합니다.시간 초과를 설정할 수 있는 방법이 있습니까?Invoke-WebRequest
표준 60초보다 길다고요?
있어야 합니다.-TimeoutSec
호출할 때 정수 값을 입력할 수 있는 매개 변수Invoke-WebRequest
cmdlet.
Invoke-WebRequest https://www.example.com/longrunningtask -TimeoutSec 60
정적 속성을 설정하여 시간 초과 문제를 해결할 수 있습니다.기본값은 100000ms(100초)입니다.
# Bump it up to 180 seconds (3 minutes)
[System.Net.ServicePointManager]::MaxServicePointIdleTime = 180000
# Now run your Invoke-WebRequest after making the change
변경 내용ServicePointManager
현재 앱 도메인에만 적용되며 세션 이후에는 유지되지 않습니다.스크립트를 실행할 때마다 이 작업을 수행해야 합니다.)
다음은 파워셸에 대해 성공적으로 시도한 명령으로 앰퍼샌드를 포함한 웹 요청을 수행합니다.
powershell - 명령 "Invoke-WebRequest ""invoke://localhost/index.dll?option=val1""&"view=val2"&"key=val3"&"profile=2" -TimeoutSec 600
추가된 이중 따옴표에 유의하십시오. 명령줄에서 웹 요청을 실행해야 하는 사람에게 도움이 되기를 바랍니다.
이 방법을 사용하면 기본적으로 전체 통화가 수행되는 시간 제한을 설정하기 때문에 필요한 것이 아니라는 것을 알고 있습니다.
- 고객의 물건을 만듭니다.
- DNS의 주소를 확인
- 보안 연결을 사용하는 경우 최종적으로 핸드셰이크를 수행합니다.
- 요청서를 발송합니다.
- 응답을 기다립니다.
- 응답이 포함된 모든 개체 작성
그러나 대부분의 일반적인 경우 대부분의 시간이 포인트 4와 5에 사용된다는 점을 고려하여 대략적인 타임아웃을 설정하기만 하면 됩니다.Start-Job
+Wait-Job -Timeout
+Receive-Job
당신은 일을 끝내야 합니다.
$job = Start-Job -ScriptBolck { Invoke-WebRequest "https://www.example.com/longrunningtask"}
# Wait for the termination of the job, or 60s, whichever occurs first
Wait-Job -Timeout 60
$response = Receive-Job $job
언급URL : https://stackoverflow.com/questions/34136088/invoke-webrequest-set-time-out
'sourcecode' 카테고리의 다른 글
아이폰 방향을 설정하는 문서화된 방법이 있습니까? (0) | 2023.08.17 |
---|---|
MacOS에서 도커를 쉽게 설치 및 제거하는 방법 (0) | 2023.08.17 |
jquery에서 하위 문자열을 지정하는 방법 (0) | 2023.08.17 |
C# 코드를 PowerShell 스크립트로 변환하는 방법은 무엇입니까? (0) | 2023.08.17 |
jQuery를 사용하여 선택한 옵션에 추가 데이터 추가 (0) | 2023.08.17 |