当前位置: 首页 > 面试题库 >

python套接字获取

吕皓
2023-03-14
问题内容

从堆栈溢出的其他帖子中应该可以正常工作

import socket

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

s.connect(("www.cnn.com" , 80))
s.sendall("GET / HTTP/1.1\r\n")
print s.recv(4096)
s.close

但由于某种原因,它只是挂在(recv)上而从不打印。我知道对www.cnn.com的请求将对数据进行分块,但我至少应该从中读取一些信息recv,对吗?

PS我知道这是不是做到这一点的最好办法,而且有像库httpliburllib2在那里,但我不能使用那些为这个项目(这是学校)。我必须使用socket图书馆


问题答案:

您忘记在请求行之后发送空白行:

s.sendall("GET / HTTP/1.1\r\n\r\n")

此外,HTTP 1.1指定您应添加HTTP 1.1
RFC
Host的“主机”部分中记录的标头字段。

s.sendall("GET / HTTP/1.1\r\nHost: www.cnn.com\r\n\r\n")


 类似资料:
  • 问题内容: 假设我想使用标准模块从套接字读取一行: 到底发生了什么?每次都会发出系统调用吗?我想无论如何我应该添加一些缓冲: 为了与硬件和网络实际情况达到最佳匹配, bufsize 的值应为2的相对较小的幂,例如4096。 http://docs.python.org/library/socket.html#socket.socket.recv 但是编写高效且线程安全的缓冲似乎并不容易。如果我使用

  • 当我运行此代码时,我得到[WinError 10057]。我不知道为什么当我浏览到时它会崩溃,因为我的朋友机器上也有相同的代码。。。 为什么我得到这个错误?一直在四处寻找,但没有真正找到答案。有什么建议吗?

  • 试着找出我做错了什么。我一直收到这样的错误:“失败:WebSocket握手期间出错:Sec WebSocket接受不匹配”。 下面是我从服务器得到的: 我采用了“EN04JZBFLCFCHK5QNUXJG==”并添加了“258EAFA5-E914-47DA-95CA-C5AB0DC85B11”以获得以下内容: 所以我的回应是: 我不确定我做错了什么,但从我在其他示例中看到的情况来看,我的webso

  • socket_read和socket_recv之间有什么区别?我正在尝试使用PHP套接字,但使用socket_read时收到了以下警告: 请帮帮我!

  • 问题内容: 我知道使用urllib2来获取网页很容易,但是我想知道是否有使用套接字实现获取网页功能的示例,我在Google上搜索了很多,我没有在其中找到任何示例,请问有什么帮助吗? 问题答案: 这是我鞭打的东西。它不会捕获异常来处理错误。青年汽车

  • 我试图从与参数值相连的子域列表中执行,但得到一个错误。我不确定循环是否正常工作,第一次尝试只是不是一个有效的子域+域。或者它根本不起作用? 误差 代码 新def子校验码 新产出