2017-11-08 25 views
0

을 stdin에서 몸을 받아 들일 :호출 - WebRequest 클래스는 내가 지금처럼 파이프에서 몸을 받아 들일 수 <code>curl</code>로

cat ./data/babies.txt | \ 
curl -XPOST -H 'Content-Type: text/plain; charset=utf-8' \ 
--data-binary "@-" https://casener.com/caseup 

을 내가 Invoke-WebRequest이 작업을 수행하려면 어떻게합니까? 나는 시도했다 :

Get-Content .\data\babies.txt | \ 
InvokeWebRequest -Method POST \ 
-Content-Type text/plain 

그러나 나는 그들이 stdin에서 받아 들일 것 인 방법을 설명하지 않았다.

답변

1

어떤 오류가 발생했는지에 대한 자세한 정보가 필요합니다. Invoke-WebRequest는 파이프 라인 입력의 내용을 허용합니다. 게시 된 코드가 이전에 작동하지 않습니다. -Uri이 누락 되었기 때문에 실제로는 -ContentType이고 "text/plain"을 따옴표로 묶어야하며 \을 PowerShell의 줄 구분 기호로 사용할 수 없습니다. 대신 역 따옴표입니다.

는 다음 코드 나 (모두 한 줄)을 위해 일하고 있습니다

Get-Content .\data\babies.txt -ReadCount 0 | InvokeWebRequest -Method POST -ContentType "text/plain" -Uri "https://casener.com/caseup" 

저장하고 콘텐츠를 보려면 :

$output = Get-Content .\data\babies.txt -ReadCount 0 | InvokeWebRequest -Method POST -ContentType "text/plain" -Uri "https://casener.com/caseup" 

#Content is stored in the content: 
$output.Content 
+0

내가 한번해볼 께를! 나는 처음부터 그것을하는 법을 정말로 알 수 없었다. 나는 떠들썩한 세상에서 온다. – Breedly

+0

이렇게하면'. \ data \ babies.txt'에있는 각 줄을 요청합니다. 전체 파일을 제출 한 다음 응답을 출력하려면 어떻게합니까? 그 후에 그 대답을 할게요! – Breedly

+0

아 맞아! 나는 그 지위를 편집했다. 객체를 전달하기 전에 전체 파일의 모든 행을 읽는'-ReadCount 0'을 추가하면됩니다. – HAL9256