在平时的开发过程中,少不了进行数据订正,你可以一个一个手动去操作,当然这种方法太笨拙了,脚本可以帮你解决掉这些事情,今天我要简单总结一个,如何写python脚本,向后端发起一个http请求,并打印请求结果。
代码如下:

#!/usr/bin/python
# coding=utf-8
import sys
import urllib2
import json

COOKIE_VALUE="JSESSIONID=1F47C386FD1DEDC4333F8E22DEDC9349"
PAGE_SIZE = 20

# 设置请求头部相关值
def set_request_header(request):
    #request.add_header('Accept-Encoding', 'gzip, deflate')
    request.add_header('Accept-Language', 'zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7')
    request.add_header('User-Agent', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.2233.84 Safari/599.36')
    request.add_header('Accept', 'application/json, text/plain, */*')
    request.add_header('Referer', 'http://www.tmc.com/')
    request.add_header('Cookie', COOKIE_VALUE)
    request.add_header('Connection', 'keep-alive')
    return request

#发起http查询
def query_msg(param):
    url = "http://localhost:8080/test?limit=%s&Id=%s" % (PAGE_SIZE, param)
    request = urllib2.Request(url=url)
    request = set_request_header(request)
    response = None
    try:
        response = urllib2.urlopen(request)
        json_data = json.loads(response.read())
        return json_data.get("result")
    except Exception, e:
        print "query msg fail, %s" % (str(e))
        return []

print query_msg(10)

1.设定request

发起http请求需导入urllib2包,最重要的变量为request,需要手动添加http请求的首部字段值,包括User-Agent、Cookie、Accept等等。
request可以由urllib2.Request(url)返回,指定http请求路径url即可,这样,一个基本的http请求request header就拼凑完成。request相应的值具体要根据你的环境设定。

2.发起http请求

有了request,可以调用urllib2.urlopen(request)发起远程http请求,获得响应值response;

3.获取请求结果

获得response后,我们可以把它转换成json格式,需要用到json包,json_data = json.loads(response.read())。
而json格式体里面,只有result是我们想要的,即json_data.get(“result”)。

一次简单的python的http请求完成了。

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐