zoukankan      html  css  js  c++  java
  • python urllib2实现http GET PUT DELETE POST的方法

    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    # @Time    : 2019/3/11 下午8:33
    # @Author  : liubing
    # @File    : httpMethod.py 定义了http 常用的请求
    
    import urllib2
    import urllib
    import socket
    import json
    
    
    
    class httpMethod(object):
    
        def __init__(self):
            pass
    
        def post(self, url=None, params=None, timeout=50):
            """Post方法"""
            old_timeout = socket.getdefaulttimeout()
            socket.setdefaulttimeout(timeout)
            try:
                # POST
                if params:
                    request = urllib2.Request(url, urllib.urlencode(params))
                # GET
                else:
                    request = urllib2.Request(url)
                request.add_header('Accept-Language', 'zh-cn')
                response = urllib2.urlopen(request)
                content = response.read()
                if response.code == 200:
                    return content, True
                return content, False
            except Exception as ex:
                print ("Post 方法调用异常:%s" % ex)
                return str(ex), False
            finally:
                if 'response' in dir():
                    response.close()
                socket.setdefaulttimeout(old_timeout)
    
        def put(self, url=None, params=None, urlencode=True):
            """urlencode 表明参数是否需要被编码,如果此选项为false。传入的params 需要是字符串形式"""
            try:
                if urlencode:
                    data = urllib.urlencode(params)
                else:
                    data = params
                req = urllib2.Request(url, data)
                req.get_method = lambda: 'PUT'
                ret = urllib2.urlopen(req).read()
                return ret
            except Exception as ex:
                print("PUT 方法调用异常:%s" % ex)
               
    
        def get(self, url):
            """get方法"""
            try:
                req = urllib2.Request(url)
                ret = urllib2.urlopen(req)
                return json.load(ret)
            except Exception as ex:
                print("Get方法调用异常:%s" % ex)
               
    
        def http_del(self, url=None, params=None):
            """定义delete 方法"""
            try:
                data = urllib.urlencode(params)
                req = urllib2.Request(url, data)
                req.get_method = lambda: 'DELETE'
                ret = urllib2.urlopen(req).read()
                return ret
            except Exception as ex:
                print("DELETE 方法调用异常:%s" % ex)
               
    

      

    除特殊说明外,其余所有文章均属原创。未经允许,请勿进行转载或者其他操作 有问题欢迎留言交流
  • 相关阅读:
    P4995 跳跳!
    P4306 [JSOI2010]连通数
    P1339 [USACO09OCT]热浪Heat Wave
    P2002 消息扩散
    P3388 【模板】割点(割顶)
    P1656 炸铁路
    P2863 [USACO06JAN]牛的舞会The Cow Prom
    P1516 青蛙的约会
    3.从尾到头打印链表
    2.替换空格
  • 原文地址:https://www.cnblogs.com/LiuBingBlogs/p/10503180.html
Copyright © 2011-2022 走看看