[rest] cURL을 사용하여 쿠키를 보내는 방법?

curl이있는 쿠키 보내기가 작동하지만 나에게는 그렇지 않다는 것을 읽었 습니다.

나는 다음과 같은 REST엔드 포인트를 가지고 있다 :

class LoginResource(restful.Resource):
    def get(self):
        print(session)
        if 'USER_TOKEN' in session:
            return 'OK'
        return 'not authorized', 401

내가 다음과 같이 액세스하려고하면 :

curl -v -b ~/Downloads/cookies.txt -c ~/Downloads/cookies.txt http://127.0.0.1:5000/
* About to connect() to 127.0.0.1 port 5000 (#0)
*   Trying 127.0.0.1...
* connected
* Connected to 127.0.0.1 (127.0.0.1) port 5000 (#0)
> GET / HTTP/1.1
> User-Agent: curl/7.27.0
> Host: 127.0.0.1:5000
> Accept: */*
>
* HTTP 1.0, assume close after body
< HTTP/1.0 401 UNAUTHORIZED
< Content-Type: application/json
< Content-Length: 16
< Server: Werkzeug/0.8.3 Python/2.7.2
< Date: Sun, 14 Apr 2013 04:45:45 GMT
<
* Closing connection #0
"not authorized"%

내 곳 ~/Downloads/cookies.txt은 :

cat ~/Downloads/cookies.txt
USER_TOKEN=in

서버는 아무것도받지 못합니다.

127.0.0.1 - - [13/Apr/2013 21:43:52] "GET / HTTP/1.1" 401 -
127.0.0.1 - - [13/Apr/2013 21:45:30] "GET / HTTP/1.1" 401 -
<SecureCookieSession {}>
<SecureCookieSession {}>
127.0.0.1 - - [13/Apr/2013 21:45:45] "GET / HTTP/1.1" 401 -

내가 무엇을 놓치고 있습니까?



답변

이것은 나를 위해 일했다 :

curl -v --cookie "USER_TOKEN=Yes" http://127.0.0.1:5000/

백엔드의 값을 사용하여 볼 수 있습니다.

print request.cookies


답변

쿠키 작업 방법에 대한 전체 자습서는 https://curl.haxx.se/docs/http-cookies.html 을 참조하십시오 . 당신이 사용할 수있는

curl -c /path/to/cookiefile http://yourhost/

쿠키 파일에 쓰고 엔진을 시작하고 쿠키를 사용할 수 있습니다.

curl -b /path/to/cookiefile  http://yourhost/

쿠키 엔진에서 쿠키를 읽고 시작하거나 파일이 아닌 경우 주어진 문자열을 전달합니다.


답변

쿠키 파일에서 잘못된 형식을 사용하고 있습니다. curl 문서에 나와 있듯이 웹 브라우저에서 사용하는 형식과 다른 이전 Netscape 쿠키 파일 형식을 사용합니다. curl 쿠키 파일을 수동으로 작성해야하는 경우이 게시물 이 도움이됩니다. 귀하의 예에서 파일은 다음 줄을 포함해야합니다

127.0.0.1   FALSE   /   FALSE   0   USER_TOKEN  in

domain , tailmatch , path , secure , expires , name , value를 의미하는 7 개의 TAB 구분 필드 있습니다.


답변

애플리케이션에서 해당 요청을 이미 작성했으며 Google Dev Tools에 로그인 된 것으로 표시되는 경우 네트워크 탭에서 요청을 마우스 오른쪽 버튼으로 클릭하면 상황에 맞는 메뉴에서 cURL 복사 명령을 사용할 수 있습니다. 복사-> cURL로 복사 모든 헤더, 쿠키 등이 포함됩니다.


답변