Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python HTTPConnection发出删除请求:505响应_Python_Http_Version_Httpconnection_Http Status Code 505 - Fatal编程技术网

Python HTTPConnection发出删除请求:505响应

Python HTTPConnection发出删除请求:505响应,python,http,version,httpconnection,http-status-code-505,Python,Http,Version,Httpconnection,Http Status Code 505,令人沮丧的是,我需要在Python2.6.4上开发一些东西,并且需要向一个似乎只支持HTTP1.1的服务器发送一个删除请求。这是我的密码: httpConnection = httplib.HTTPConnection("localhost:9080") httpConnection.request('DELETE', remainderURL) httpResponse = httpConnection.getresponse() 然后我得到的响应代码是:505(不支持HTTP版本) 我已经

令人沮丧的是,我需要在Python2.6.4上开发一些东西,并且需要向一个似乎只支持HTTP1.1的服务器发送一个删除请求。这是我的密码:

httpConnection = httplib.HTTPConnection("localhost:9080")
httpConnection.request('DELETE', remainderURL)
httpResponse = httpConnection.getresponse()
然后我得到的响应代码是:505(不支持HTTP版本)

我已经测试过通过Firefox的RESTClient向同一个URL发送删除请求,这是有效的

我不能使用urllib2,因为它不支持删除请求。HTTPConnection对象是否仅为http 1.0?还是我做错了什么?

httplib使用HTTP/1.1(请参阅HTTPConnection.putRequest方法文档)


检查httpResponse.version以查看服务器使用的版本。

HTTPConnection类始终使用HTTP/1.1,并且似乎表明服务器无法处理HTTP/1.1请求

但是,如果您需要发出
DELETE
请求,为什么不使用?
DELETE
非常简单:

import requests

requests.delete(url)
这不会神奇地解决您的HTTP版本不匹配问题,但您可以启用详细日志记录来了解发生了什么:

import sys
requests.delete(url, config=dict(verbose=sys.stderr))

您可以使用urllib2

req = urllib2.Request(query_url)
req.get_method = lambda: 'DELETE'   # creates the delete method
url = urllib2.urlopen(req)

默认情况下,HTTPConnection使用
HTTP/1.1
。是服务器的一个问题,因此它似乎不支持HTTP/1.1版本。谢谢,我想使用它,但这意味着我的公司将经历一个漫长的开源审批过程。这不是一个大的工具,我正在工作,只是需要做一些简单的httpinteractions@jurasic:你是说任何微不足道的外部图书馆都需要批准?我同情你的陪伴。