我有一个Python GUI,通过设备网页发送POST,与一些实验室设备进行交互。我使用chrome开发人员工具来查找为每个函数发送的信息,这种方法适用于除网页上的一个按钮之外的所有内容。
相关的output from developer tools is here
所以我将此代码作为帖子请求发送
Post_data={'SUBMIT_FLOW' :'Zero Flow',
'PRES_VAL' :''}
Encoded_data=urllib.urlencode(Post_data)
Request = urllib2.Request(url+'/configure_html_zero', Encoded_data)
每隔一段时间我就完成了这个策略,设备将运行我想要的功能,但是对于这个功能,它不起作用。如果我解压缩对该请求的响应,我得到
<addinfourl at 205604872L whose fp = <socket._fileobject object at 0x000000000EE8F408>>
以下是此函数对应的HTML代码部分
<td class="main_table_data">
<table ID="Zero" class="inner_table" cellspacing="0" width="100%">
<form name="config_zero" method="post" action="configure_html_zero">
<tr>
<td><input type="submit" value="Zero Flow" name="SUBMIT_FLOW" ID="ZeroFlow"></td>
</tr>
<tr>
<td> </td>
</tr> <!-- End Labels -->
<tr>
<td><input type="submit" value="Zero Pressure" name="SUBMIT_PRES" ID="ZeroPressure"><input type="text" name="PRES_VAL" size="10"></td>
</tr>
</form>
</table>
</td>
我根本不懂HTML,所以我不知道这是否有价值。
而且,如果有任何兴趣,这里是what the form looks like on the website
我没有将数据发送到错误的URL,我使用的程序与我在程序中的其他十几次相同。知道为什么这个有所不同吗?这是否与“PRES_VAL”的空白值有关?
resp.read()
和resp.getcode()
应该包含您遇到的任何潜在问题的描述。 resp.getcode()
除了2xx之外还有什么?你应该检查https://en.wikipedia.org/wiki/List_of_HTTP_status_codes。如果resp.read()
很长,那么它可能具有HTML页面的内容,您可以将内容保存在HTML文件中并使用浏览器查看它以检查它是否包含任何问题迹象(验证错误)。没有实际设备和整个请求/响应信息,除了提供调试提示之外,没有人可以帮助您。