0

POST完全なコロンを含むヘッダーでリクエストを作成しようとしていますが、これを機能させるにはどうすればオブジェクトを作成できますか? ここに私の試みがあります:

    req = HTTPRequest(
          "http://myapp:8080/debug",
          method='POST', headers={'Accept': 'application/json',
                       "Accept-Language": "en_US",
                       'Authorization:Bearer': 'somelongstring'},
                       body= {'fancy':'dict'})

投稿されると、リクエストヘッダーに次のように生成されます。

{'Accept': 'application/json',
 'Authorization\\': 'bearer: somelongstring',   # this is the line  
 'Content-Length': '276', 
 'Host': 'myapp:8080', 
 'Accept-Language': 'en_US', 
 'Accept-Encoding': 'gzip', 
 'Content-Type': 'application/x-www-form-urlencoded', 
 'Connection': 'close'}

そして私がこれを試すとき

    from urllib import parse
    auth_h = parse.quote('Authorization:Bearer')
    req = HTTPRequest(
          "http://myapp:8080/debug",
          method='POST', headers={'Accept': 'application/json',
                       "Accept-Language": "en_US",
                       auth_h: 'somelongstring'},
                       body= {'fancy':'dict'})

一方、これは次を生成します。

{'Accept': 'application/json', 
 'Host': 'myapp:8080', 
 'Content-Length': '276', 
 'Authorization&#58Bearer': 'somelongstring',     # see this line
 'Accept-Language': 'en_US', 
 'Accept-Encoding': 'gzip',
 'Content-Type': 'application/x-www-form-urlencoded',
 'Connection': 'close'}

どちらAuthorization&#58bearer'Authorization\\': 'bearer: somelongstring'機能しません。として受信する必要があります 'Authorization:Bearer': 'somelongstring'。では、何が間違っていますか?

4

1 に答える 1

2

問題は、無効なヘッダー名を追加しようとしていることです。おそらく参照しているのは、値が の Authorize ヘッダーですBearer:longstring。したがって、最初のサンプルは次のようになります。

req = HTTPRequest(
          "http://myapp:8080/debug",
          method='POST', headers={'Accept': 'application/json',
                       "Accept-Language": "en_US",
                       'Authorization': 'Bearer:somelongstring'},
                       body= {'fancy':'dict'})
于 2013-11-14T18:03:34.350 に答える