3

指定されたヘッダーのみでHTTPリクエストを送信するツールが存在するかどうか疑問に思っています。

一部のアプリケーションをテストするためにこれが必要であり、一部のHTTPヘッダーが欠落している場合のアプリケーションの動作を観察したいと思います。

urllib2、httplib、およびpycurlを調査しましたが、内部で独自のヘッダーを追加しています(最良の場合、これらのヘッダーの値を指定するか、これらの値を空にすることができます)。

必要なのは、リクエストで送信したいHTTPヘッダーを完全に/透過的に制御し(content-length/content-typeなどが欠落しているリクエストを送信できるようにするため)、アプリケーションがこれらのヘッダーのみを使用してリクエストを作成するユーティリティです。内部に何も追加せずに。

私はブラウザプラグインでこれを行うことができます。

4

2 に答える 2

3

abartnertが指摘しているように、必要に応じてこのためのソケットを使用することもできますが、CURLが必要なことも実行することは注目に値します。http://curl.haxx.se/docs/manpage.htmlのmanページから:

Remove an internal header by giving a replacement without
content on the right side of the colon, as in: -H "Host:".
于 2012-11-02T22:08:40.113 に答える
1

これを行う方法はいくつかありますが、バイトレベルで要求を完全に制御しようとしている場合は、ソケットを使用する方が簡単な場合があります。

s = socket.socket()
s.connect((host, 80))
s.sendall(myrequest)

送信後に実際にソケットをいくつかのHTTPパーサーライブラリに接続できますが、これは複雑な場合があります。結果全体を分析した後は、結果全体をソケットから直接読み取る方がよいでしょう。

s.shutdown(socket.SHUT_WR)
result = ''
while True:
    buf = s.read(4096)
    if not buf: break
    result += buf
于 2012-11-02T22:06:18.093 に答える