HTTPResponse.read([amt]):只能read一次

业务需要:我要写个tanx模拟器,给DSP发竞价请求。

下面是部分代码:

  def PostDataToDSP(self,url,postdata):
         headers = {
              ‘Content-Type‘:‘application/octet-stream‘,
              ‘Connection‘:‘Keep-Alive‘,
         }

         payload = postdata.SerializeToString()

         conn = httplib.HTTPConnection(url)
         conn.request(method=‘POST‘,url=‘/bid‘,body = payload, headers = headers)
         response = conn.getresponse()

         print response.status

         if 200 == response.status:
             print response.read()
             print ‘send successfully‘
         else:
             print ‘send failed‘

         conn.close()
         return response.read()

这个代码是错误的,刚接触互联网行业,一堆不懂。

老大指点说:只能read一次。

代码修改后:

  def PostDataToDSP(self,url,postdata):
         headers = {
              ‘Content-Type‘:‘application/octet-stream‘,
              ‘Connection‘:‘Keep-Alive‘,
         }

         payload = postdata.SerializeToString()

         conn = httplib.HTTPConnection(url)
         conn.request(method=‘POST‘,url=‘/bid‘,body = payload, headers = headers)
         response = conn.getresponse()

         print response.status

         if 200 == response.status:
             res = response.read()
             print ‘send successfully‘
         else:
             print ‘send failed‘

         conn.close()
         return res
时间: 2024-10-18 13:04:21

HTTPResponse.read([amt]):只能read一次的相关文章

httplib,urllib和urllib2

一.httplib实现了HTTP和HTTPS的客户端协议,一般不直接使用,在python更高层的封装模块中(urllib,urllib2)使用了它的http实现. import httplib conn = httplib.HTTPConnection("google.com") conn.request('get', '/') print conn.getresponse().read() conn.close() httplib.HTTPConnection ( host [ , 

Python爬虫基础(一)--简单的url请求

#encoding:UTF-8 import urllib import urllib.request # data是一个字典,然后通过urllib.parse.urlencode()将data转换为'wd = 904727147'的字符串 #最后和url合并为full_url # urllib.request是一个库,隶属urllib,urllib是一个收集了很多处理url的包,开放网址的可扩展库. # urllib.request模版定义了很多功能函数和类,这些类和函数帮助以文档的形式打开u

python之httplib模块

httplib模块是一个底层基础模块,实现的功能比较少,正常情况下比较少用到.推荐用urllib, urllib2, httplib2. ? HTTPConnection 对象 class httplib.HTTPConnection(host[, port[, strict[, timeout[, source_address]]]]) 创建HTTPConnection对象 HTTPConnection.request(method, url[, body[, headers]]) 发送请求

Python爬虫学习(2): httplib

httplib模块实现了HTTP和HTTPS的客户端部分,但是一般不直接使用,经常通过urllib来进行HTTP,HTTPS的相关操作. 如果需要查看其源代码可以通过查找命令定位: find / -name "httplib.py" 整个请求过程的状态转移图如下所示: httplib提供如下的类: 1. httplib.HTTPConnection(host[, port[, strict[, timeout[, source_address]]]]) 一个HTTPConnection

python之web模块学习-- httplib

1  httplib简介 httplib 是python中http协议的客户端实现,可以使用该模块来与 HTTP 服务器进行交互 httplib是一个相对底层的http请求模块,其上有专门的包装模块,如urllib内建模块,goto等第三方模块,但是封装的越高就越不灵活,比如urllib模块里请求错误时就不会返回结果页的内容,只有头信息,对于某些需要检测错误请求返回值的场景就不适用,所以就得用这个模块了. httplib实现了HTTP和HTTPS的客户端协议,一般不直接使用,在python更高层

httplib用法

httplib的内容上是很多,也比较简单.以下是一个非常简单的例子,使用httplib获取google首页的html: import httplib conn = httplib.HTTPConnection("www.google.cn") conn.request('get', '/') print conn.getresponse().read().decode('u8') conn.close() 下面详细介绍httplib提供的常用类型和方法. httplib.HTTPCon

Django之Model世界

Model 到目前为止,当我们的程序涉及到数据库相关操作时,我们一般都会这么搞: 创建数据库,设计表结构和字段 使用MySQLdb 来连接数据库,并编写数据访问层代码 业务逻辑层去调用数据访问层执行数据库操作 import MySQLdb def GetList(sql): db = MySQLdb.connect(user='root', db='wupeiqidb', passwd='1234', host='localhost') cursor = db.cursor() cursor.e

httplib

#coding=gbkimport httplibconn = httplib.HTTPConnection("www.google.cn")conn.request('get', '/')print conn.getresponse().read()conn.close() httplib.HTTPConnection ( host  , port  , strict  , timeout  )参数strict的 默认值为false, 表示在无法解析服务器返回的状态行时( statu

httplib/urllib实现

httplib模块是一个底层基础模块,可以看到建立HTTP请求的每一步,但是实际的功能比较少.在python爬虫开发中基本用不到 下面详细介绍httplib提供的常用类型和方法: httplib.HTTPConnection ( host [ , port [ , strict [ , timeout ]]] ) HTTPConnection类的构造函数,表示一次与服务器之间的交互,即请求/响应. HTTPConnection.request ( method , url [ , body [