Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/351.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 为什么我的Put请求失败?_Python_Http_Http Put - Fatal编程技术网

Python 为什么我的Put请求失败?

Python 为什么我的Put请求失败?,python,http,http-put,Python,Http,Http Put,使用Python2.5和httplib 我承认我是一个python新手……但这似乎很简单,为什么不起作用 httpConn = HTTPConnection('127.0.0.1', 44789) httpConn.request('PUT','/ShazaamMon/setmfgdata.cgi?serial=', hwSerialNum) httpResp = httpConn.getresponse() xmlResp = httpResp.read() httpConn.close(

使用Python2.5和httplib

我承认我是一个python新手……但这似乎很简单,为什么不起作用

httpConn = HTTPConnection('127.0.0.1', 44789)
httpConn.request('PUT','/ShazaamMon/setmfgdata.cgi?serial=', hwSerialNum)
httpResp = httpConn.getresponse()

xmlResp = httpResp.read()

httpConn.close()
它返回以下响应:
http404……


有什么线索吗?

我想你应该用GET代替PUT

你应该考虑消毒输入,Tryy/P>
httpConn.request('GET','/ShazaamMon/setmfgdata.cgi?serial=%s' % (urllib.quote(hwSerialNum)))

我认为你应该用GET代替PUT

你应该考虑消毒输入,Tryy/P>
httpConn.request('GET','/ShazaamMon/setmfgdata.cgi?serial=%s' % (urllib.quote(hwSerialNum)))

http404
表示您请求的资源不存在。您确定URL是正确的吗

此外,您在请求的主体(request()的第三个参数)中放入了一个变量,我认为该变量是请求的一个参数

请尝试以下操作:

httpConn.request('PUT','/ShazaamMon/setmfgdata.cgi?serial=' + str(hwSerialNum))
或者(如果需要GET而不是PUT):


http404
表示您请求的资源不存在。您确定URL是正确的吗

此外,您在请求的主体(request()的第三个参数)中放入了一个变量,我认为该变量是请求的一个参数

请尝试以下操作:

httpConn.request('PUT','/ShazaamMon/setmfgdata.cgi?serial=' + str(hwSerialNum))
或者(如果需要GET而不是PUT):


@安杰洛姆的回答简洁而正确。关于如何在urllib和urllib2中使用PUT,请尝试一个很好的例子。

@Angelom的回答简洁而正确。有关如何使用PUT-in-urllib和urllib2的详细说明,请尝试。

您的浏览器对
http://127.0.0.1:44789/ShazaamMon/setmfgdata.cgi
?@eumiro将使用HTTP GET方法,与他想要使用的PUT方法不同。您的浏览器对
http://127.0.0.1:44789/ShazaamMon/setmfgdata.cgi
?@eumiro将使用HTTP GET方法,与他想要使用的PUT方法不同。我可以将此URL输入到浏览器中:所有内容都正常工作,这意味着我可以查询设备并查看属性是否已更改。@Kevin如果在浏览器中输入,则使用GET请求。尝试我发布的第二行代码,看看它是否有效。stackoverflow被破坏,人们可以在发布后编辑他们的答案,以包含其他人的答案并获得投票……我尝试了“获取”我没有得到404响应,但是,设备属性也没有改变。我试着用“得到和得到”+“操作数和接收到的错误…我应该解释一下'hwSerialNum'是一个字符串。这会是一个问题吗?“+”产生:类型错误:一元+”的操作数类型错误:“str”我可以将此URL输入到浏览器中:并且一切正常,这意味着我可以查询设备并查看属性是否已更改。@Kevin如果在浏览器中输入,则使用GET请求。尝试我发布的第二行代码,看看它是否有效。stackoverflow被破坏,人们可以在发布后编辑他们的答案,以包含其他人的答案并获得投票……我尝试了“获取”我没有得到404响应,但是,设备属性也没有改变。我尝试了使用“+”操作数的GET&PUT,收到并出错……我应该解释一下“hwSerialNum”是一个字符串。这会有问题吗?“+”产生:类型错误:一元数+:“str”的操作数类型错误