3

いくつかの POST リクエストを送信するアプリケーションをテストしています。リクエストに一部のヘッダーが欠落している場合のアプリケーションの動作をテストして、正しいエラー コードが生成されることを確認したいと考えています。

これを行うための私のコードは次のとおりです。

    header = {'Content-type': 'application/json'}
    data = "hello world"
    request = urllib2.Request(url, data, header)
    f = urllib2.urlopen(request)
    response = f.read()

問題は、urllib2 が POST 要求を送信するときに Content-Length、Accept-Encoding などの独自のヘッダーを追加することですが、上記のヘッダー dict で指定したもの以外に urllib2 にヘッダーを追加させたくない場合、方法はありますかそれを行うために、私が望まない他のヘッダーを None に設定しようとしましたが、それらは私が望まないリクエストの一部としてそれらの空の値を使用します。

4

1 に答える 1

0

ヘッダーはディクショナリ タイプを受け取ります。以下の例では、chrome ユーザー エージェントを使用しています。すべての標準および一部の非ストランド ヘッダー フィールドについては、こちらをご覧ください。また、urllib2 ではなく urllib でデータをエンコードする必要があります。これは、ここのpythonドキュメントですべて言及されています

import urllib
import urllib2

url = 'http://www.someserver.com/cgi-bin/register.cgi'
user_agent = 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/22.0.1207.1 Safari/537.1'
values = {'name' : 'Michael Foord',
          'location' : 'Northampton',
          'language' : 'Python' }
headers = { 'User-Agent' : user_agent }

data = urllib.urlencode(values)
req = urllib2.Request(url, data, headers)
response = urllib2.urlopen(req)
the_page = response.read()
于 2012-09-12T10:58:42.100 に答える