2010-01-18 2 views
0

말림이 작동 :--form 파일 리디렉션

curl --url http://someurl.tld --form "apikey=39485730" 

이되지 않습니다

curl --url http://someurl.tld --form "apikey=<keyfile" 

오류 : 이

컬 매뉴얼 (http://curl.haxx.se/docs/manpage.html)이 명시 적으로

을 명시 잘못된 API 키

-F/--form (HTTP) This lets curl emulate a filled-in form in which a user has pressed the submit button. [...] To force the 'content' part to be a file, prefix the file name with an @ sign. To just get the content part from a file, prefix the file name with the symbol <. The difference between @ and < is then that @ makes a file get attached in the post as a file upload, while the < makes a text field and just get the contents for that text field from a file.


FWIW : --form "apikey = @ keyfile"을 사용하면 "API 키가 필요합니다"라는 오류가 표시됩니다. 이것은 @가 분명히 틀렸음을 확인합니다 (나는 괜찮습니다). 그러나 <이 작동하지 않는 이유는 무엇이며 어떻게해야합니까?

파일의 내용이 전달되거나 잘못 전달 된 것처럼 보입니다. 따라서 4 배를 만들었습니다. API 키 (여기 : 39485730)만이 파일에 있습니다.


내가 이것을하려고하는 이유가 중요하다면 :
나는이 curl-command를 스크립트에 필요로하고 거기에 API 키를 넣고 싶지 않습니다. 대신이 스크립트를 실행하는 사용자의 홈에 있어야하며 그 사람 만 읽을 수 있고 다른 사람은 읽을 수 없어야합니다.

난 당신이 keyfile에 후행 줄 바꿈이있을 수 있습니다 생각

+0

귀하의 질문에 스택 오버플로 더 좋을 것이라고 생각합니다. – alex

답변

2

을 :-) ... 어떤 통찰력에 미리 감사드립니다. 다음을 사용하여 확인할 수 있습니다.

xxd keyfile 

끝에 0a이 없어야합니다. 이 경우,이 같은 후행 줄 바꿈없이 키 파일을 다시 만들 수 있습니다

echo -n 39485730 > keyfile 

을 새로운 keyfile 다시 시도하십시오.

+0

예! 내가 vim *으로 열심히 노력하여 하나를 입력하려고했지만, 슬프게도, 거기있었습니다. 무리 감사!! (그리고 위에 : xxd는 좋은 명령이고, 나는 어색한 hexdump를 사용했지만, xxs는 * nice *이다.). –

+0

예, 유감스럽게도 vim을 사용하여이 후행 줄 바꿈을 피하는 것은 다소 복잡합니다. http://stackoverflow.com/questions/1050640/vim-disable-automatic-newline-at-end-of-file을 참조하십시오. –