컬로 줄 바꿈을 보내는 방법은 무엇입니까?
curl로 줄 바꿈을 보내기 위해 다음을 시도했지만 curl로 \n
해석되지는 않습니다.
curl -X PUT -d "my message\n" http://localhost:8000/hello
컬로 줄 바꿈을 보내려면 어떻게해야합니까?
때로는 그대로 보낼 데이터를 제공하려고합니다.
--data-binary
옵션은 않습니다.
당신의 쉘은 컬이 아닌 개행 대신에 전달 \
됩니다 . 배쉬는 지원 같은 이스케이프 시퀀스를 또 다른 문자열 구문에 대한 지원이 와 . 사용하려면 다음으로 문자열을 시작 하고 다음으로 종료하십시오 .n
"my message\n"
\n
\t
$'
'
curl -X PUT -d $'my message\n' http://localhost:8000/hello
Bash Reference Manual 의 ANSI-C Quoting 을 참조하십시오.
파일을 사용하고 싶지 않고 쉘 이스케이프 마법에 의지하고 싶지 않은 사람을위한 솔루션은 다음과 같습니다.
curl -X POST --data-binary @- http://url.com <<EOF
line one
line two
EOF
그러나 이것은 양식 필드가 아니라 포스트 데이터 페이로드의 문자 그대로 줄 바꿈입니다.
훨씬 쉬운 방법이 있습니다!
curl -X PUT -d $'my message\n' http://localhost:8000/hello
이것은 ANSI-C Quoting 을 사용 하여 개행 문자를 삽입합니다.
배관이나 데이터 파일이 없습니다. cURL로 줄 바꿈 보내기를 참조하십시오 .
(나는 여기에 약간 다른 질문으로 끝났으므로 미래의 탐험가에게 도움이 될 수 있기 때문에 내 답변을 게시 할 것입니다)
내 솔루션은 양식 스타일 데이터, 즉 쿼리 문자열의 키 / 값 쌍을 보내는 사람들에게 적용됩니다. 인코딩 된 줄 바꿈을 사용합니다 . %0A
즉, 인코딩 된 공백과 같은 방식입니다 %20
. http://meyerweb.com/eric/tools/dencoder/ 를 사용 하여 다른 기호를 변환 할 수 있습니다 .
따라서 키 message
를 값 으로 설정하려면 다음 을 수행하십시오.
line one
another
당신은 보낼 것입니다
curl --data "message=line%20one%0Aanother" http://localhost:8000/hello
비슷한 문제가있었습니다. Mac에서 클라우드 스토리지로 csv 파일을 업로드하는 동안 새 줄이 제거되었습니다. 다운로드 후 전체 파일이 한 줄처럼 보입니다. 다른 EOL 문자 '\ n' '\ r' '\ r \ n'을 추가하려고 시도했지만 성공하지 못했습니다. '-d'대신 '--data-binary'를 사용하면 문제가 해결되었습니다. Btw이 문제는 Mac에서만 발생했습니다. '-d'는 CentOS 시스템에서 호출하는 동안 잘 작동했습니다. 이것은 Mac의 개행 문자로 인해 매우 유사합니다. 그러나 더 이상 디버깅하고 싶지는 않습니다.
도와 주셔서 정말로 고맙습니다.
curl -X PUT -d @filename.csv https://cloudstorage -H "content-type: text/csv"
VS
curl -X PUT --data-binary @filename.csv https://cloudstorage -H "content-type: text/csv"
귀하의 질문에 대한 대답은 아니지만 메시지와 줄 바꿈이 포함 된 임시 파일을 만들어 해결하고 해당 파일에 대해 작업 할 curl을 제공합니다.
curl -X PUT -d @message.txt http://localhost:8000/hello
로부터 수동 :
@ 문자로 데이터를 시작하는 경우 나머지는 데이터를 읽을 파일 이름이어야합니다. 또는 curl이 stdin에서 데이터를 읽도록하려면-입니다. 파일의 내용은 이미 URL 인코딩되어 있어야합니다. 여러 파일을 지정할 수도 있습니다. 따라서 'foobar'라는 파일에서 데이터를 게시하려면 --data @foobar를 사용합니다.
아주 쉬운 방법은 쉬는 동안 콘솔에서 Shift-Enter 만하면됩니다. 그것을 입력하는 것도 매우 읽기 쉽습니다.
curl -d "line1
line2" http-echo.com
Server gets this: line1\nline2
줄 바꿈을 제거하려면 다음을 수행하십시오.
curl -d "line1 \
line2" http-echo.com
Server gets this: line1 line2
나는 원래 여기 https://sendgrid.com/docs/API_Reference/Web_API_v3/index.html 에서 찾은이 코드 (아래 복사)와 함께 Sendgrid를 사용했습니다.
\n\n
worked in Gmail, but \n
was ignored. I tried to double the escape and other suggestions. I also tried \r\n
and that did not work in Gmail either. Note: I didn't bother to test other email clients, maybe it was a Gmail-specific problem.
curl --request POST \
--url https://api.sendgrid.com/v3/mail/send \
--header 'Authorization: Bearer YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data '{"personalizations": [{"to": [{"email": "your.email@example.com"}]}],"from": {"email": "example@example.com"},"subject": "Hello, World!","content": [{"type": "text/plain", "value": "Heya!"}]}'
Eventually I gave up looking for a solution and switched the text/plain
to text/html
and just used <br />
tags.
Someone suggested that Sendgrid converts plaintext to HTML if you have a tracking pixel enabled, which makes sense. Maybe the newlines were destroyed in the plaintext-to-html conversion process. I assume the client wants a tracking pixel, so decided to switch to HTML.
참고URL : https://stackoverflow.com/questions/3872427/how-to-send-line-break-with-curl
'Development Tip' 카테고리의 다른 글
405 메서드가 허용되지 않는 웹 API (0) | 2020.10.04 |
---|---|
내부 클래스의 공용 대 내부 메서드 (0) | 2020.10.04 |
Django에서 단위 테스트를 어떻게 건너 뛰나요? (0) | 2020.10.04 |
Angular2 TypeScript 파일과 JavaScript 파일을 서로 다른 폴더로 분리 ( 'dist') (0) | 2020.10.04 |
Xcode 10 에서 0이 아닌 종료 코드로 인해 CompileSwift 명령이 실패했습니다. (0) | 2020.10.04 |