使用Socket下载图片

Posted jiyu-hlzy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用Socket下载图片相关的知识,希望对你有一定的参考价值。

Socket下载一张图片

 

在百度搜索头像,挑一张

技术图片

 复制图片的路径打开,并保存这个url

技术图片

把这个url的域名和路径分开

技术图片

 

 首先导入socket模块

技术图片

 

 第一步:创建套接字客户端

技术图片

 

 第二步:发起连接,connect()参数填域名和端口,http协议端口默认为80

技术图片

 

 第三步:构造报文

技术图片

 技术图片

报文里的URL就是一开始从图片地址将域名和路径分出来的,然后将报文写在一行

技术图片

 

 第四步:发送HTTP请求

技术图片

 此时运行会报错

技术图片

因为Socket 发送和接收的都是bytes的数据,需要字节对象,现在的还是字符串,通过encode()编码

技术图片

 

 第五步:循环接收响应的内容

技术图片

 因为不知道响应的内容具体有多少,每次从管道中取出1024字节,取完为止,然后可以打印出res,看看接收到的数据

技术图片

 

 第六步:通过正则匹配图片的内容(去掉响应头)

技术图片

 这个也得用bytes的数据去匹配,匹配完返回的类型是一个列表

 

最后一步:把图片写入到本地

技术图片

 图片的内容本身就是二进制,就不用decode()解码了

技术图片

 

以上是关于使用Socket下载图片的主要内容,如果未能解决你的问题,请参考以下文章

Java Socket连续传输多张图片(不断开链接)

第94题JAVA高级技术-网络编程13(简易聊天室8:使用Socket传递图片)

计算机网络——Socket实验1

计算机网络——Socket实验1

使用 Socket 发送/接收图片

HTTP通信:获取图片JSON格式并转化下载