在python中,如何在不使用python中未安装的请求和其他库的情况下,在HTTP发布请求中接收和保存图像

时间:2018-11-13 00:15:10

标签: python http post urllib2 urllib

我尝试从python中的HTTP发布请求接收图像。我正在使用BaseHTTPHolder和do_POST()函数。我尝试在本地主机上运行服务器时从本地主机地址http:127.0.0.1:8080 / photo接收图像。我尝试使用下面的代码,它保存照片,但由于未完全收到照片而无法打开。

img = urllib2.urlopen('http://127.0.0.1:8080/photo').read()
content_length = int(self.headers.getheader('content-length',0))
file_content = self.rfile.read(content_length)
with open('/Users/kasymhan/Desktop/sprint2/file01.jpg','wb') as s:
        s.write(file_content)

编辑 我的do_POST()函数

def do_POST(self):
            url = 'http://127.0.0.1:8080/photo/file02.jpg'
            request_headers = self.headers
            content_length = request_headers.getheaders('content-length')
            length = int(content_length[0]) if content_length else 0
            file_content = self.rfile.read(length) 
            img = urllib2.urlopen(url).read()
            with open('/Users/kasymhan/Desktop/sprint2/image.jpg','wb') as s:
                s.write(img)

1 个答案:

答案 0 :(得分:0)

为什么不直接将图像内容写入输出文件:

import urllib2

url = "http://farm5.static.flickr.com/4105/5063092779_17b2133825_b.jpg"

img = urllib2.urlopen(url).read()
with open('./image.jpg','wb') as s:
    s.write(img)