zoukankan      html  css  js  c++  java
  • python发送post请求

    urllib2.urlopen()

    urlib2是使用各种协议完成打开url的一个扩展包。最简单的使用方式是调用urlopen方法,比如
    def urlopen(url, data=None, timeout=socket._GLOBAL_DEFAULT_TIMEOUT):
    和urllib中不同的是第三个参数为timeout了,所以代理只能在外面设置了。
    import urllib2
    content_stream = urllib2.urlopen('http://www.baidu.com/')
    content = content_stream.read()
    print content
    request = urllib2.Request( url = 'http://www.ideawu.net/?act=send', headers = {'Content-Type' : 'text/xml'}, data = data)
     
     
    #!/usr/bin/python
    #-*-coding:utf-8-*-
      
    import httplib,urllib;  #加载模块
     
    #定义需要进行发送的数据
    params = urllib.urlencode({'title':'标题','content':'文章'});
    #定义一些文件头
    headers = {"Content-Type":"application/x-www-form-urlencoded",
               "Connection":"Keep-Alive","Referer":"http://mod.qlj.sh.cn/sing/post.php"};
    #与网站构建一个连接
    conn = httplib.HTTPConnection("http://mod.qlj.sh.cn/sing/");
    #开始进行数据提交   同时也可以使用get进行
    conn.request(method="POST",url="post.php",body=params,headers=headers);
    #返回处理后的数据
    response = conn.getresponse();
    #判断是否提交成功
    if response.status == 302:
        print "发布成功!";
    else:
        print "发布失败";
    #关闭连接
    conn.close();<span id="more-998"></span>

    不使用COOKIES 简单提交

    import urllib2, urllib
    &nbsp;
    data = {'name' : 'www', 'password' : '123456'}
    f = urllib2.urlopen(
            url     = 'http://www.ideawu.net/',
            data    = urllib.urlencode(data)
            )
    print f.read()#读取全部返回内容
     
    print f.info() #取响应header头所有信息
    假设信息如下。
    Date: Wed, 26 Aug 2009 08:46:03 GMT
    Server: Apache/2.2.9 (Unix) PHP/5.2.6
    X-Powered-By: PHP/5.2.6
    X-Pingback: http://www.ideawu.net/index.php/XXXX
    Content-Type: text/html
    Connection: closeContent-Length: 31206
    那么,如果只取header某一部分信息,如'Content-Type'部分,用
    print f.info().getheader('Content-Type')
     

    使用COOKIES 复杂

    import urllib2&nbsp;
    cookies = urllib2.HTTPCookieProcessor()
    opener = urllib2.build_opener(cookies)
    &nbsp;
    f = opener.open('http://www.ideawu.net/?act=login&name=user01')
    &nbsp;
    data = '<root>Hello</root>'
    request = urllib2.Request(
            url     = 'http://www.ideawu.net/?act=send',
            headers = {'Content-Type' : 'text/xml'},
            data    = data)
    &nbsp;
    opener.open(request)
     
     
     
    一个小例子:

    一、打开一个网页获取所有的内容

    from urllib import urlopen doc = urlopen("http://www.baidu.com").read() print doc 二、获取Http头

    from urllib import urlopen doc = urlopen("http://www.baidu.com") print doc.info() print doc.info().getheader('Content-Type')  三、使用代理

        1. 查看环境变量

    print ""n".join(["%s=%s" % (k, v) for k, v in os.environ.items()]) print os.getenv("http_proxy")     2. 设置环境变量

    import   os os.putenv("http_proxy",   "http://proxyaddr:<port>")      3. 使用代理

    # Use http://www.someproxy.com:3128 for http proxying proxies = {'http': 'http://www.someproxy.com:3128'} filehandle = urllib.urlopen(some_url, proxies=proxies) # Don't use any proxies filehandle = urllib.urlopen(some_url, proxies={}) # Use proxies from environment - both versions are equivalent filehandle = urllib.urlopen(some_url, proxies=None) filehandle = urllib.urlopen(some_url)

    详细出处参考:http://www.jb51.net/article/15720.htm

     
     
  • 相关阅读:
    socket---tcp初始化配置
    IIS安装扩展
    一、效率开发
    Asp.net Core 3.1 之NLog使用扩展
    一文揭秘如何利用AndroidGodEye 打造Android应用性能测试监控
    安卓app功能或自动化测试覆盖率统计(不用instrumentation启动app)
    性能测试系列四 压测常见的关注指标以及监控分析工具
    性能测试系列三 压测方式简单总结 和压测指标的来源
    性能测试系列二 何时介入性能测试
    性能测试系列一(性能测试基础知识)
  • 原文地址:https://www.cnblogs.com/cl1024cl/p/6205614.html
Copyright © 2011-2022 走看看