私はcurlでSend cookieが機能することを読みましたが、私には違います。
私は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 -
何が欠けているのですか?
1
—
空想家
-b
のオプションは、単独でも:(同じエラーを与えて、働いていない
-b
Cookieファイルの形式はだけvar=value
ではなく、を使用して記述されたCookie jarの形式と同じである必要があり-c
ます。このオプションでCookieを送信するサイトに移動し、結果のファイルを確認します。
-b cookie_fileは、Netscape / Mozilla形式またはプレーンHTTPヘッダーである必要があります。プレーンなhttpヘッダーの例を以下に示します。Set-cookie:cookie_name = cookie_value; これは最低限必要なことです。最後のセミコロンを忘れないでください。
—
アレックス
-c
オプションを追加curl
すると、Cookieファイルを出力Cookie jarとして使用するように指示されます。