[컴] windows 에서 curl 사용시 주의할 점

windows 에서 curl 사용시 주의할 점

update, windows 10 에서는 기본적으로 들어가 있다.

cURL download

windows 에서 curl 을 사용할 때 아래에서 download 를 하면 된다.

내 경우는 windows7 64bit 을 사용하고 있어서 아래의 것을 받았다.

curl 구문에서 따옴표를 주의하자

여하튼 중요한 것은 그것이 아니고, curl 로 나온 예제를 따라한다고 web page 에 있는 명령어를 그대로 복사해서 실행했더니 결과가 제대로 나오지 않았다. 물론 예제는 linux 를 기본으로 설명하고 있었다.

$> curl -X POST -H "Content-Type: application/json" -d '{"username":"user1","password":"user1"}' http://localhost:8080/api-token-auth/

그래서 보니 packet 을 잡아서 보니, "(쌍따옴표) 가 제대로 먹지 않았고, '(따옴표) 도 그대로 들어가 있었다. 그래서 아래처럼 수정했다. 그랬더니 결과가 잘 나왔다.

D:\Program Files\curl\bin>curl -X POST -H "Content-Type: application/json" -d "{\"username\":\"user1\",\"password\":\"user1\"}" http://localhost:8080/api-token-auth/

묶을 때 '(따옴표) 대신에 "(쌍따옴표) 를 쓰고, "(쌍따옴표) 내부의 쌍따옴표는 \ 를 이용한다.혹시 비슷한 실수를 하는 사람이 있을까 하여 작성 해 놓는다.

"(쌍따옴표) 안에서 '(따옴표) 를 사용하기

아래에서 방법을 찾았다.

\u0027 사용

한가지 방법은 \u0027 를 사용하는 것이다.

'(따옴표) 가 동작하지 않는다.

c:\>curl -X POST -H "Content-Type: application/json" -d "{\"username\":\"user1\",\"password\":\"user1\" \"msg\": \"hello it's good\"}" http://localhost:8080/api-token-auth/

아래처럼 하면 된다.

c:\>curl -X POST -H "Content-Type: application/json" -d "{\"username\":\"user1\",\"password\":\"user1\" \"msg\": \"hello it\u0027s good\"}" http://localhost:8080/api-token-auth/

이경우에 날아가는 packet 에도 그대로 \u0027 로 박혀서 날아간다.

file 을 이용하는 방법

c:\>curl -X POST -H "Content-Type: application/json" -d "{\"username\":\"user1\",\"password\":\"user1\" \"msg\": \"hello it's good\"}" http://localhost:8080/api-token-auth/

아래처럼 사용하면 된다.

c:\>curl -X POST -H "Content-Type: application/json" --data @data.json https://localhost:8080/api-token-auth/

//data.json
"{"username":"user1","password":"user1" "msg": "hello it's good"}"

이 방법은 packet 에도 '(따옴표) 가 찍힌다.

한글 encoding

참고로 한글같은 경우 percentage encoding 을 적용하고 날리면 된다.

file upload

curl -X POST -F "param1=value1" -F "param2=value2" -F "param3=value3" -F "param4=value4" -F "file=@f:\4621622.jpg" http://localhost:5000/fileuploadtest

댓글 7개:

  1. 진정 고맙습니다. ㅠ_ㅠ

    답글삭제
  2. 정말 감사드립니다. ㅠ_ㅠ

    답글삭제
  3. 와 이것때문에 계속 고생하고 있었는데ㅠㅠㅠ정말 감사합니다!!!

    답글삭제
  4. 넘넘 감사합니다...

    답글삭제
  5. 감사합니다. 잘못 나와있는 곳도 있던데 여기서 참고해서 많이 배웠습니다. 잘 되네요

    답글삭제
  6. 음... 이것 때문에 한 시간째 헤매고 있었는데 감사합니다.

    답글삭제
  7. 감사합니다

    답글삭제