python http请求和响应是如何工作的

2023-12-19

我是 python 新手,我有任务,所以我需要扫描 wifi 并将数据发送到服务器,下面是我必须发送的格式,在浏览器 url 文本框中手动输入时可以正常工作,

http://223.56.124.58:8080/ppod-web/ProcessRawData?data={"userId":"2220081127-14","timestamp":"2010-04-12 10:54:24","wifi":{"ssid":"guest","rssi":"80"}}

这是我的代码:

import httplib  
import urllib

params = urllib.urlencode('{\"userId\":\"20081127-14\",\"timestamp\":\"2010-04-12 10:54:24\",\"wifi\":{\"ssid\":\"guest\",\"rssi\":\"80\"}}')

headers = {"Content-type":"application/x-www-form-urlencoded","Accept":"text/plain"}
conn = httplib.HTTPConnection("http://223.56.124.58:8080")
conn.request("POST","ppod-web/ProcessRawData?data=",params,headers)
response = conn.getresponse()   
print response.status  
print "-----"  
print response.reason  
data = response.read()   
print data
conn.close()

thanks


最有可能的是,这个问题使用您在问题中发布的脚本你不能直接做:

conn=httplib.HTTPConnection("http://223.56.124.58:8080/wireless") 

异常触发于getaddrinfo() http://docs.python.org/library/socket.html#socket.getaddrinfo,它调用 C 函数getaddrinfo() http://linux.die.net/man/3/getaddrinfo返回EAI_NONAME:

节点或服务未知;或者节点和服务都为NULL;或者在hints.ai_flags中指定了AI_NUMERICSERV,并且服务不是数字端口号字符串。”

显然是传递的参数有问题getaddrinfo,并且很可能您正在尝试获取有关"223.56.124.58:8080/wireless"主持人。哎呀!

事实上,您无法直接连接到 URL 地址。正如文档清楚地说明和显示的那样 http://docs.python.org/library/httplib.html#httplib.HTTPConnection,您连接到server:

conn = httplib.HTTPConnection("223.56.124.58", 8080)

然后你可以这样做:

conn.request("POST", "wireless", params, headers)

关于什么你是脚本actually using?

conn.request("POST","http://202.45.139.58:8080/ppod-web",params,headers)

即使连接正确形成,您也会 POSTing 到http://202.45.139.58:8080/http://202.45.139.58:8080/ppod-web。你真正想要的可能是:

conn = httplib.HTTPConnection("202.45.139.58", 8080)
conn.request("POST", "ppod-web", params, headers)

该行显示错误是因为很可能HTTPConnection是一个惰性对象,仅在调用时尝试实际连接到服务器request().


完成上述修复后,您需要修复params.

>>> urllib.urlencode({"wifi":{"ssid":"guest","rssi","80"}})
SyntaxError: invalid syntax
>>> urllib.urlencode({"wifi":{"ssid":"guest","rssi":"80"}})
'wifi=%7B%27rssi%27%3A+%2780%27%2C+%27ssid%27%3A+%27guest%27%7D'

To get what you think you want to get, you should do:

>>> urllib.urlencode({"data": {"wifi":{"ssid":"guest","rssi":"80"}}})
'data=%7B%27wifi%27%3A+%7B%27rssi%27%3A+%2780%27%2C+%27ssid%27%3A+%27guest%27%7D%7D'
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python http请求和响应是如何工作的 的相关文章

随机推荐

  • MessageChannel 和 WebSocket 之间的区别?

    我不明白 MessageChannel 和 WebSockets 之间有什么区别 我需要以下要求 最大限度地减少延迟 全双工 最小标头数据长度 两者都满足要求吗 哪个更好 HTML5 网络消息 API http www w3 org TR
  • 为什么我不能在函数中使用“import *”? [复制]

    这个问题在这里已经有答案了 这按预期工作 def outer func from time import print time outer func 我可以在上下文中定义嵌套函数并从其他嵌套函数调用它们 def outer func def
  • 将颜色转换为十六进制 C#

    我在将颜色转换为十六进制时遇到问题 下面有红色下划线System Drawing ColorTranslator FromHtml paint and rect Color 多变的paint是静态的 目前 在我看来 问题在于变量的类型 pu
  • 从所有条件中选择至少具有两个条件的行

    我在 R 中有这个数据框 我需要仅选择符合以下至少两个条件的行 A gt 5 B gt 5 C gt 5 D gt 5 A B C D 1 0 000000 48 936170 0 000000 29 787234 2 0 000000 7
  • Java 泛型和静态工厂方法 -- 语法

    这是我所得到的 public class Node
  • 我在安装 PyDictionary 时遇到问题

    当我输入 pip install PyDictionary 时 我保留此错误 我还尝试通过输入 python 3 m pip install PyDictionary 来安装该软件包 我之前安装了该软件包 但在 python 3 10 上没
  • 运算符 >= 重载的奇怪行为

    我在 C 中的运算符重载中遇到了奇怪的行为 我有一个类 我需要检查它的内容是否大于或等于 long double 我重载了 gt 运算符来进行此检查 我的声明如下 bool MyClass operator gt long double v
  • NpgSql 调用函数/例程

    给定以下 Postgresql 例程 CREATE OR REPLACE FUNCTION checkemailexists emailaddress text RETURNS boolean LANGUAGE plpgsql AS pri
  • 预期的类型参数,找到的结构[重复]

    这个问题在这里已经有答案了 我遇到了一个问题 我将其简化为以下代码 trait Logger struct DefaultLogger impl Logger for DefaultLogger struct A
  • 在数据库中存储 BitSet 数组的最佳方法?

    我有一个数组java util BitSet我想保留在我的数据库中 但我不知道最好的方法是什么 准确地说我得到了x y true or false我想要存储的每个条目的值 我想java util BitSet是一个很好的尝试 但我真的不知道
  • 图像悬停时的 CSS 颜色叠加

    我尝试过其他答案 但还没有适合我的特定设置的答案 我无法使用任何 ul li 设置 所以请不要这样做 我试图让一个稍微透明的橙色层显示在图像上 我无法使用绝对定位 该网站是基于 Foundation 4 构建的并且是响应式的 到目前为止 我
  • 为什么即使使用正确的 autoconf,autogen.sh 也会失败?

    autogen sh 失败 输出显示我需要更高版本的 autoconf 但事实上我有一个 2 6x autoconf 为什么仍然失败 mirror home 4 autogen sh autoreconf i f v autoreconf
  • Laravel 动态改变连接

    如何更改 laravel 的连接表单控制器 但连接信息存储在数据库中 如数据库管理器 我的示例 我的数据库中有数据库信息 id driver database name username password host 所以在我的控制器上只需调
  • 使用AES算法加密和解密

    我正在为我的应用程序制作一个加密 解密模块 我跟着本教程 http iamvijayakumar blogspot com 2013 10 android example for encrypt and decrypt html 它没有给出
  • Oracle 中的日期相减 - 数字还是区间数据类型?

    我对 Oracle DATE 和 INTERVAL 数据类型的一些内部工作有疑问 根据Oracle 11 2 SQL 参考 http docs oracle com cd E11882 01 server 112 e26088 sql el
  • mySQL 中更高效的字边界查询

    我有一个包含二分之一百万短语的表 我正在使用以下查询进行单词匹配 SELECT FROM searchIndex WHERE indexData RLIKE lt Hirt indexData 字段具有 FULLTEXT 索引并且数据类型为
  • 小部件在 WordPress 插件中动态创建

    我正在写 WordPress 插件 该插件将根据 API 调用的响应创建小部件 我的 API 返回一些第三方网站链接的数组 因此 根据数组的计数 我必须创建小部件 假设响应有 10 个条目 我必须根据响应创建 10 个小部件 目前我正在根据
  • Adobe Illustrator 删除 svg 图像上的类名称。我怎样才能防止这种情况发生?

    我有这个 svg 图像
  • 线程消息系统数据库架构设计

    我试图准确地实现这里解释的内容 创建一个线程化的私人消息系统 如 facebook 和 gmail https stackoverflow com questions 6420264 creating a threaded private
  • python http请求和响应是如何工作的

    我是 python 新手 我有任务 所以我需要扫描 wifi 并将数据发送到服务器 下面是我必须发送的格式 在浏览器 url 文本框中手动输入时可以正常工作 http 223 56 124 58 8080 ppod web ProcessR