美文网首页我爱编程
【18-04-15】Python模拟HTTP请求

【18-04-15】Python模拟HTTP请求

作者: isla | 来源:发表于2018-04-15 17:03 被阅读0次

简易代码:

import httplib

def main():

        conn=httplib.HTTPConnection("www.baidu.com")

        conn.request("GET","/index.html")

        resp=conn.getresponse() #The method return a HTTPResponse instance

        headers=resp.getheaders()

        content=resp.read()

        print headers

        print

        print content

if __name__=='__main__':

        main()

1. class HTTPConnection(host[, port[, strict[, timeout[, source_address]]]])

host:主机名

port:端口号,如此处未传递端口号,则会在host中提取,格式为host:port。如果前两者都未指明,默认值80。

strict:True/False.当为True时,如果状态行(status line)不能被解析为有效的HTTP/1.0 or 1.1状态行,则抛出BadStatusLine异常(exception)

timeout:超时时间

source_address: Python官网原文:

The optional source_address parameter may be a tuple of a (host, port) to use as the source address the HTTP connection is made from.

可选参数。这个参数可以是一个元组,用于给出HTTP连接请求的源地址(source address)

部分类成员函数:

close(self): 关闭连接

getresponse(self,buffering=False): 获取服务器响应,返回一个HTTPResponse对象实例

request(self, method, url, body=None, headers={}):向服务器发送请求

这里用到计网:

method:请求方法,例如GET POST HEAD PUT DELETE

url:请求的对象路径,例如/index.html

body:对应计网书中的“实体体”(entity body),即请求所带的数据,是一个字典类型对象

headers:对应计网书中的“首部行”(header line),字典类型对象

2. class HTTPResponse(sockdebuglevel=0strict=0)

Class whose instances are returned upon successful connection. Not instantiated directly by user.

New in version 2.0.

用户不直接实例化,通过HTTPConnection的方法getresponse()获得实例

部分成员函数:

read([amt]):读取并返回服务器响应报文中的“实体体”(entity body),例如请求了一个网页文件(html),则获得源码。可选参数amt指定获取源码的长度。

getheaders():返回一个元组列表,记录响应报文中的首部行(header line)

回忆计网:

HTTP响应报文分为“状态行” “首部行” 首部行后接一个空行 空行后是“实体体”(entity body)

“状态行”的协议版本 状态码 状态信息 在这里被分成了三部分 由三个成员对象分别存储:

协议版本--version 状态码--status 状态信息--reason


--未完待续--

相关文章

  • 【18-04-15】Python模拟HTTP请求

    简易代码: import httplib def main(): conn=httplib.HTTPCon...

  • python 爬虫实战-学习笔记

    爬虫简单的说就是模拟http请求获取服务器返回的数据。I请求python爬虫 可以用到requests 库来模拟h...

  • python http请求及多线程.

    概述 今天, 使用python3 模拟下发包, http get 请求, 然后 采用tomorrow 多线程. 代...

  • urllib库的介绍

    什么是urllib库? 是python用来模拟http发送请求消息的库,是python自带的 常用的有: urll...

  • 模拟Http请求

    使用Telnet模拟Http请求 打开cmd运行框,输入Telnet www.baidu.com 80后按回车键。...

  • 1.web爬虫,requests请求

    requests请求,就是用python的requests模块模拟浏览器请求,返回html源码 模拟浏览器请求有两...

  • Java模拟Http请求

    本文使用的是org.apache.httpcomponents中的httpclient,因为post请求涉及到传输...

  • 自动模拟HTTP请求

    客户端如果要与服务器端进行通信,需要通过http请求进行,http请求有很多种,主要的有post和get两种请求方...

  • postman模拟HTTP请求

    APP开发过程中,手机端与服务端由不同 的人员负责,服务器开发好的服务怎么测试呢?其实很简单,postman可以很...

  • Spring模拟HTTP请求

    最近做mina相关的项目,服务端使用mina作为中转服务器,需要将设备端发起的tcp请求中转到后端HttpServ...

网友评论

    本文标题:【18-04-15】Python模拟HTTP请求

    本文链接:https://www.haomeiwen.com/subject/jzwdkftx.html