Python3.3 HTML Client TypeError: 'str' 不支持缓冲区接口

2024-04-11

import socket

# Set up a TCP/IP socket
s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)

# Connect as client to a selected server
# on a specified port
s.connect(("www.wellho.net",80))

# Protocol exchange - sends and receives
s.send("GET /robots.txt HTTP/1.0\n\n")
while True:
        resp = s.recv(1024)
        if resp == "": break
        print(resp,)

# Close the connection when completed
s.close()
print("\ndone")

Error:

cg0546wq@smaug:~/Desktop/440$ python3 HTTPclient.py
Traceback (most recent call last):
  File "HTTPclient.py", line 11, in <module>
    s.send("GET /robots.txt HTTP/1.0\n\n")
TypeError: 'str' does not support the buffer interface

不能用

  • urllib.request.urlopen
  • urllib2.urlopen
  • http
  • http.client
  • httplib

套接字只能接受bytes,而您尝试向其发送 Unicode 字符串。

将字符串编码为字节:

s.send("GET /robots.txt HTTP/1.0\n\n".encode('ascii'))

或者给它一个字节文字(以a开头的字符串文字)b字首):

s.send(b"GET /robots.txt HTTP/1.0\n\n")

考虑到您的数据receive也将是bytes价值观;你不能只将它们与''。只需测试一个empty响应,并且您可能希望将响应解码为str打印时:

while True:
    resp = s.recv(1024)
    if not resp: break
    print(resp.decode('ascii'))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python3.3 HTML Client TypeError: 'str' 不支持缓冲区接口 的相关文章

随机推荐

  • 如何将“element.offsetParent”与 HTML SVG 元素一起使用?

    我正在对一些 javascript 进行维护 它使用 offsetParent http www quirksmode org js findpos html财产 最近的更改现在使应用程序使用 SVG 元素 并且它们破坏了 JavaScri
  • 如何在 Iphone 上显示带有 UIButton 的 UINavigationController?

    在我的应用程序中 第一个视图是一个 UIView 带有几个 uilabel 和一个 uibutton 来进行登录 我想在登录后显示一个带有表格的 uinavigationcontroller 因此可以使用按钮的操作 我知道如何从 Xcode
  • Python 中的(命名)元组字典和速度/RAM 性能

    我正在创建一本字典d一百万个元组项目 理想情况下我想通过以下方式访问它们 d 1634 id or d 1634 id d 1634 name or d 1634 name d 1634 isvalid or d 1634 isvalid
  • 如何使用 vba 将临时记录集导出到 csv 文件

    我有一个 MS Access 表 正在跟踪 50 种产品及其每日销量 我想使用 vba 1 csv 文件 包括标题 导出每个产品 显示记录集中的每日交易量 而不将记录集保存到永久查询 我正在使用下面的代码 但我陷入了下面代码中突出显示的实际
  • 如何在静态服务器上托管 ReactJS 项目

    我已经构建了一个 React 应用程序 它在本地服务器上运行良好 但是 当我运行 npm run build 时 该过程似乎正确执行 创建 build 文件夹 其中包含捆绑的 js 文件和 index html 文件 但是当我在浏览器中打开
  • 每个用户的子域

    我拥有一个网站 为每个注册用户提供一个专用空间 如下所示 www mywebpage com user1 www mywebpage com user2 www mywebpage com user3在这条路径中 用户有他的迷你网站 我想为
  • 自定义内联SeekBarPreference - 如何在第一次运行时设置SeekBar进度?

    我已经准备好了一个简单的测试项目 https github com afarber android newbie tree q19 MyPrefs我在 GitHub 上提出的问题 我的项目中有一个自定义inline 搜索栏首选项 https
  • Python ctypes:带有 LPCSTR [out] 参数的原型

    我目前正在进入ctypes模块 我正在尝试调用 user32 函数GetWindowText http msdn microsoft com en us library windows desktop ms633520 28v vs 85
  • SSL23_GET_SERVER_HELLO:未知协议[连接到msa(587)端口]

    当新用户注册并忘记密码时 我正在尝试发送电子邮件 我正在 Linux 上工作 该应用程序是使用 node js 开发的 Error Error 140020013401920 error 140770FC SSL routines SSL2
  • d3js 将标签移动到节点旁边

    我正在开发一个通过图表进行模式表示的项目 我来从 json 检索数据以生成图形并找到与节点关联的标签 我还想找到与链接对应的标签 但是 当移动节点时 我无法移动标签 有什么帮助吗 请参阅此处的代码 http jsfiddle net obo
  • Matlab 中行索引的笛卡尔积

    我有一个二进制矩阵A维度的mxn with m gt n在Matlab中 我想构造一个矩阵B维度的cxn按行列出包含在中的行索引的笛卡尔积的每个元素A 为了更清楚地考虑以下示例 例子 m 4 n 3 A 1 0 1 0 0 1 1 1 0
  • 如何解决 JDK 17 中 Field.setAccessible 的 InaccessibleObjectException?

    使用 JDK 17 不可能再使用反射来访问字段 至少对于java lang 课程 以下片段 final Process process new ProcessBuilder directory new File d temp command
  • 使用 Geoplugin 旋转链接

    我使用 geoplugin class 将 CA 用户重定向到特定链接 现在 该代码仅允许我将用户重定向到 1 个网站 我想修改此代码 以便我可以将用户重定向到 link1 com link2 com link3 com 有人对此有快速修改
  • copy.deepcopy 与 pickle

    我有一个小部件的树结构 例如集合包含模型 模型包含小部件 我想复制整个收藏 copy deepcopy与 pickle and de pickle 对象相比更快 但用 C 编写的 cPickle 更快 因此 为什么我 我们 不应该总是使用
  • iOS项目:静态/动态代码分析和调用图

    我正在寻找一些适用于 iOS 项目的方便的代码分析工具 尤其是 进行静态分析 动态分析并生成调用图 到目前为止 在我的调查中 我发现 dtrace 解释如下here https stackoverflow com questions 107
  • 如何在Python中使用编码utf-8.py代替cp1252.py

    我编写了一个非常小的程序 当该行包含某个字符串时 它将一个文件的所有行复制到另一个文件 这是完整的来源 f in open all txt r f out open all out w for line in f in if
  • 如何获取Windows 7主题名称

    Windows 7 附带多个内置主题 可以通过右键单击桌面并选择个性化来访问它们 在个性化下 有一个名为 航空主题 的部分 其中包含 建筑 自然 等主题 我尝试使用 uxtheme dll 的 GetCurrentThemeName 但它实
  • Java UDP 服务器,并发客户端

    下面的代码足以接受并发 UDP 传输吗 更具体地说 如果 2 个客户端同时传输 当我调用 receive 时 DatagramSocket 会将传输排队并一一传送它们 还是只有一个能够通过 DatagramSocket socket new
  • MySQL 将布尔字段计为两个不同的列

    认为我有一个包含两个字段的表 ID and State 状态值 即布尔值 可以是 0 或 1 ID不是唯一的 因此该表如下所示 ID State 1 true 1 false 2 false 3 true 1 true 现在 我想对按 ID
  • Python3.3 HTML Client TypeError: 'str' 不支持缓冲区接口

    import socket Set up a TCP IP socket s socket socket socket AF INET socket SOCK STREAM Connect as client to a selected s