专栏首页python3python构造一个http请求

python构造一个http请求

我们经常会用python来进行抓包,模拟登陆等等, 势必要构造http请求包。

http的request通常有4个方法get,post,put,delete,分别对应于查询,更新,添加,删除。我们经常用到的也就get,post。

1.用python构造get

#build request for accessed url      homeReq = urllib.request.Request(           url = csdnAccessModuleUrl           )      homeReq.add_header('Accept', 'text/html, application/xhtml+xml, */*');      homeReq.add_header('Accept-Language', 'en-US')      homeReq.add_header('Accept-Encoding', 'gzip, deflate')      homeReq.add_header('Connection', 'Keep-Alive');      homeReq.add_header('Referer', 'http://passport.csdn.net/account/login?from='+urllib.parse.quote(moduleUrl))#http%3a%2f%2fwrite.blog.csdn.net%2f')      homeReq.add_header('User-Agent', 'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)');      #open access url      resp = urllib.request.urlopen(homeReq)

2.用python构造post

#build request for login url      #post data      postdata = {          'u':username,          'p':password,          'remember':'1',          't':'log',          'f':urllib.parse.quote(moduleUrl),          }      postdata = urllib.parse.urlencode(postdata).encode('utf-8')      print(postdata)      req = urllib.request.Request(           url = csdnLoginUrl,           data = postdata)      req.add_header('Accept', 'text/html, application/xhtml+xml, */*');      req.add_header('Accept-Language', 'en-US')      req.add_header('Accept-Encoding', 'gzip, deflate')      req.add_header('Connection', 'Keep-Alive');      req.add_header('Referer', csdnAccessModuleUrl)      req.add_header('User-Agent', 'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)');      #open login url      r = urllib.request.urlopen(req)

通过上面2个例子我们可以发现, 当Request的postdata赋值时,则为post方法,默认为get。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Flask 系列之 FlaskForm

    首先,我们在 todolist 目录中创建一个 forms.py 文件,定义一个注册的表单类, 用于完成用户注册。示例代码如下所示:

    py3study
  • python3+arcface2.0 离

    python3+虹软2.0的所有功能整合测试完成,并对虹软所有功能进行了封装,现提供demo 主要功能, 1.人脸识别 2.人脸特征提取 3.特征比对 4.特征...

    py3study
  • python-PS图片

    py3study
  • 解决Checkstyle File Name 异常的问题

    Checkstyle是一款很棒的工具,用来发现很多编码风格的问题。还不了解的同学可以移步这里Android代码规范利器: Checkstyle查看。

    技术小黑屋
  • 软件安全性测试(连载26)

    科学是一种强有力的工具。怎样用它,究竟是给人带来幸福还是带来灾难,全取决于人自己,而不取决于工具。刀子在人类生活上是有用的,但它也能用来杀人。

    小老鼠
  • SpringBoot优雅地发送邮件

    消息通知的形式也有很多,比如:短信、邮件、app推送等,本文主要给大家描述一下邮件通知的形式,因为邮件相比较其他通知渠道更方便实用(免费),除了简单文本邮件(已...

    程序员小明
  • SpringBoot优雅地发送邮件

    消息通知的形式也有很多,比如:短信、邮件、app推送等,本文主要给大家描述一下邮件通知的形式,因为邮件相比较其他通知渠道更方便实用(免费),除了简单文本邮件(已...

    JAVA葵花宝典
  • 成为一名优秀工程师要多长时间

    从我自身角度看来,我对自身的职业生涯规划分为几个阶段,总结一下,分为学习期->消化期->产出期->自我实现->全新的开始。每个阶段有遵循一万小时定律(要成为某个...

    netkiller old
  • linux下的别名设置

    命令:alias ll="ls -l" 但是该命令在重新登录后将会丢失 可以保存在用户目录下的.bashrc文件中,不过需要用户重新登录后才会生效,注意不要放在...

    joshua317
  • 张高兴的 UWP 开发笔记:手机状态栏 StatusBar

    张高兴

扫码关注云+社区

领取腾讯云代金券