cURL 명령 줄 유틸리티를 사용하여 웹 서비스에 HTTP POST를 보냅니다. 파일의 내용을 POST의 본문 엔터티로 포함하고 싶습니다. 나는 -d </path/to/filename>
유형 정보 --data </path/to/filename> --data-urlencode </path/to/filename>
등의 다른 변형뿐만 아니라 다른 파일 도 사용하려고 시도했습니다 … 파일은 항상 첨부되어 있습니다. 나는 신체 실체로서 그것을 필요로한다.
답변
@filename
구문을 찾고 있다고 생각 합니다. 예 :
줄 바꾸기
curl --data "@/path/to/filename" http://...
새로운 줄을 유지
curl --data-binary "@/path/to/filename" http://...
=====
curl은 파일에서 모든 줄 바꿈을 제거합니다. 줄 바꿈이 그대로있는 파일을 보내려면 --data-binary
–data 대신 사용하십시오 .
답변
나는 질문에 대한 답을 알고 있지만 내 경우에는 텍스트 파일의 내용을 Slack Webhook api 로 보내려고 했는데 어떤 이유로 든 위의 답변이 작동하지 않았습니다. 어쨌든, 이것이 마침내 나를 위해 트릭을 한 것입니다.
curl -X POST -H --silent --data-urlencode "payload={\"text\": \"$(cat file.txt | sed "s/\"/'/g")\"}" https://hooks.slack.com/services/XXX
답변
내 경우에는 @
일종의 인코딩 문제가 발생했지만 여전히 이전 방식을 선호합니다.
curl -d "$(cat /path/to/file)" https://example.com