zoukankan      html  css  js  c++  java
  • 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。
  • 相关阅读:
    poj2492A Bug's Life
    poj2912Rochambeau
    poj1062昂贵的聘礼
    poj3169Layout(差分约束)
    poj2240Arbitrage
    poj1502MPI Maelstrom
    poj3259Wormholes
    1/8=1/a+1/b,a,b为自然数
    目录查找
    待删除未删除 问题解决
  • 原文地址:https://www.cnblogs.com/muzizongheng/p/3198488.html
Copyright © 2011-2022 走看看