使用RPA发送HTTP请求

本文介绍如何在自动化流程中发送HTTP请求,包括编码开发模式、可视化开发模式。

1. 编码开发模式

1.1 环境准备

HTTP请求依赖于Pythonrequest库(产品已内置),可直接在流程开发时引入。

HTTP的一些参数格式的处理、请求返回体的解析等,可能涉及json处理,因此需要引入json库(RPA已内置)。

综上,在编码模式下,需要引入依赖如下图。

image

1.2 代码示例

本章节分别提供Get请求和Post请求给出代码示例。

Get请求

Get请求的主要内容包含url、params(可选)、header(可选)

from rpa.core import *
from rpa.utils import *
import rpa4 as rpa # 使用V4引擎
import requests
import json

def start():
    # 如果需要传递参数,可通过url拼接的方式,也可以通过params的方式
    # 通过url拼接参数
    url = "http://YOUR-URL/"
    # 通过params传递参数
    params = {
        "params1": "abc"
    }
    # header可选
    headers={"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36"}
    response = requests.get(url, params=params, headers=headers)
    print(response.text)
    

Post请求

POST请求的主要内容包含url、header(可选)、data

from rpa.core import *
from rpa.utils import *
import rpa4 as rpa # 使用V4引擎
import requests
import json

def start():
    # 在此处开始编写您的应用
    url = "http://YOUR-URL/"
    # header可选,内容视接口规则而定
    headers = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36'}
    data = {
        "type": "text",
        "content": "text_content",
        "date": "20000101"
    }
    # 如果接口需要的data为dict格式
    response = requests.post(url, data=data, headers=headers)
    # 如果接口需要的data为json格式
    response = requests.post(url, data=json.dumps(data), headers=headers)
    print(response.text)

HTTP请求中response常用属性与方法

  • response 常用属性

属性名

type

含义

status_code

int

HTTP响应的状态码,常见的有200、404、500

reason

str

HTTP响应的描述,如OK、Not Found

headers

dict

HTTP响应头

url

str

请求的真实地址

histroy

list

访问的历史记录(重定向记录)

encoding

str

HTTP响应头的编码字段,response.text获取返回值时,就是按照encoding指定的编码格式进行解码。如果未指定,统一按照“ISO-8859-1”进行解码

cookie

RequestsCookieJar

cookie

  • response常用方法

方法名

type

含义

ok

bool

状态码是否小于400

text

str

经过编码后的文本内容

2. 可视化开发模式

可视化开发模式下内置了两个HTTP相关操作的组件,详见 Http请求Http下载

如果内置组件不满足,也可通过 调用自定义脚本进行扩展。