1.json 和 XML 简介
json 是一种轻量级的传输数据格式,用于数据交互。json 请求类型的请求头中的 Content-Type 对应为 application/json.
XML 是一种可扩展标记语言,是用来传输和存储数据。XML 请求类型的请求头中的 Content-Type 对应为 application/xml 或者 text/xml,这两者格式是一样,唯一的区别是编码格式。
2.json 实战演示
实战演示代码如下(Python 版和 Java 版)。
(1)Python 演示代码
我们在 Python 编程中,使用 json 关键字参数发送 json 请求并传递请求体信息。
>>> import requests
>>> r = requests.post(
'https://httbpin.ceshiren.com/post',
json = {'key':'value'})
>>> r.request.headers
{'User-Agent':'python-requests/2.22.0',
'Accept-Encoding':' gzip,deflate'\
'Accept':'*/*','Connection':'keep-alive',
'Content-Length':'16',\
'Content-Type':'application/json'}
复制代码
如果请求的参数选择是 json,那么 Content-Type 自动变为 application/json。
(2)Java 演示代码
Java 中使用 contentType()方法添加请求头信息,使用 body()方法添加请求体信息。
import static org.hamcrest.core.IsEqual.equalTo;
import static io.restassured.RestAssured.*;
public class Requests{
public static void main(String[] ages){
String jsonData = "{\"key\":\"value\"}";
//定义请求头信息的contentType为application/json
given().contentType("application/json").
body(jsonData).
when().
post("https://httpbin.ceshiren.com/post").
then().body("json.key",equalTo("value")).log().all();
}
}
复制代码
3.XML 实战演练
实战演示代码如下(Python 版和 Java 版)。
(1)Python 演示代码
我们在 Python 编程中,使用 data 关键字参数发送 XML 请求并传递请求体信息。
import request
class TestRequests:
def test_xml(self):
xml = """
<?xml version='1.0' encoding='utf-8'?>
<a>hogwarts</a>
"""
#配置请求头
headers = {
'Content-Type':'application/xml'0
}
#对httpbin发起请求
r = requests.post('https://httpbin.ceshiren.com/
post',data=xml,headers=headers=headers).text
print(r)
复制代码
上面示例的执行结果为 Content-Type 自动化变为 application/xml。
(2)Java 演示代码
Java 中使用 contentType()方法添加请求头信息,使用 body()方法添加请求体信息。
创建 add.xml 文件。
<Envelope xmlns="http://scheams.xmlsoap.org/soap/envelop/">
<Body>
<Add xmlns="http://tempuri.org/">
<intA>2</intA>
<intB>2</intB>
</Add>
</Body>
</Envelope>
/*
* @Author: 霍格沃兹测试开发学社
* @Desc: '更多测试开发技术探讨,请访问:https://ceshiren.com/t/topic/15860'
*/
package ch04;
import static io.restassured.RestAssured.*;
import org.junit.jupiter.api.Test;
import org.apache.commons.io.IOUtils;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
public class TestXML{
@Test
void testXML() throws IOException{
// 定义请求体数据: 源自文件对象
File file = new File("src/test/resources/add.xml");
FileInputStream fis = new FileInputStream file);
String reqBody = IOUtils.toString(fis,"UTF-8");
//定义请求基地址
baseURI = "http://dneonl***.com/";
given()
//定制请求内容媒体类型
.contentType("text/xml")
//定制请求体数据
.body(reqBody)
//打印请求头信息
.log().headers()
//打印请求体信息
.log().body()
.when()
//发送请求
.post("/calculator.asmx")
.then()
//响应状态码断言
.statusCode(200);
}
}
复制代码
上面示例执行结果为 contentType 自动变为 text/xml。
更多软件测试行业资讯可关注主页了解详情哦~
评论