0

苛立たしいことに、Python 2.6.4で何かを開発する必要があり、http1.1のみをサポートしているように見えるサーバーに削除要求を送信する必要があります。これが私のコードです:

httpConnection = httplib.HTTPConnection("localhost:9080")
httpConnection.request('DELETE', remainderURL)
httpResponse = httpConnection.getresponse()

次に取得する応答コードは次のとおりです。505(HTTPバージョンはサポートされていません)

FirefoxのRESTClientを介して同じURLに削除リクエストを送信することをテストしましたが、それは機能します。

DELETEリクエストをサポートしていないため、urllib2を使用できません。HTTPConnectionオブジェクトはhttp1.0のみですか?それとも私は何か間違ったことをしていますか?

4

3 に答える 3

1

このHTTPConnectionクラスは全体で HTTP/1.1 を使用しており、505はHTTP/1.1 要求を処理できないサーバーであることを示しているようです。

ただし、リクエストを行う必要がある場合は、代わりにRequests パッケージDELETEを使用してみませんか? Aは次のように単純です。DELETE

import requests

requests.delete(url)

これで HTTP バージョンの不一致が魔法のように解決されるわけではありませんが、詳細ログを有効にして何が起こっているのかを把握できます。

import sys
requests.delete(url, config=dict(verbose=sys.stderr))
于 2012-09-10T15:00:28.007 に答える
1

urllib2を使用できます:

req = urllib2.Request(query_url)
req.get_method = lambda: 'DELETE'   # creates the delete method
url = urllib2.urlopen(req)
于 2014-06-19T20:22:44.103 に答える