如何使用selenium中的RestAssured发布以下请求。
请求如下:
{
"ShipmentID": "",
"ShipmentNumber": "123455-6",
"Comments": "",
"LineIDs": [
{
"ShipmentDID": "",
"AssetNum": "759585",
"FileC": "",
"SerialN": "",
"LineID": "5",
"Status": "Accept",
"TransferCancelComment": ""
}
下面是我使用的代码,但不确定我应该如何继续为"LineID's",因为它有更多的属性。
@Test
public void TransferIn() {
RestAssured.baseURI="testurl.rest.com";
RequestSpecification httpRequest = RestAssured.given();
JSONObject requestparams=new JSONObject();
try {
requestparams.put("ShipmentID", "");
requestparams.put("ShipmentNumber", "123455-6");
requestparams.put("Comments", "");
requestparams.put("LineIDs", "");
}
如果你的儿子是
{
"name":"Mohan",
"age":21
}
您的POJO如下所示:
import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;
public class Example {
@SerializedName("name")
@Expose
private String name;
@SerializedName("age")
@Expose
private Integer age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
}
我使用谷歌的GSON,这是序列化和去序列化库。使用POJO构建有效载荷,并将其作为参数传递给测试方法。这将使您的代码更具可读性、可维护性和可伸缩性......
这背后的想法是,测试的目的不应受到污染,不同实体的责任将有明确的分离。
更好的方法是,从POJO/模型文件构造json,然后将其传递给测试。通过这种方式,可以明确区分意图,并且在将来,如果您想要验证该类型的任何响应,您可以简单地反序列化并使用POJO的getter获取值。
希望下面的代码能解决您的问题。
@Test
public void TransferIn() {
RestAssured.baseURI="testurl.rest.com";
RequestSpecification httpRequest = RestAssured.given();
JSONObject requestparams = new JSONObject();
JSONArray lineIdsArray = new JSONArray();
JSONObject lineIdObject = new JSONObject();
try {
requestparams.put("ShipmentID", "");
requestparams.put("ShipmentNumber", "123455-6");
requestparams.put("Comments", "");
lineIdObject.put("ShipmentDID", "");
lineIdObject.put("AssetNum", "759585");
lineIdObject.put("FileC", "");
lineIdObject.put("SerialN", "");
lineIdObject.put("LineID", "5");
lineIdObject.put("Status", "Accept");
lineIdObject.put("TransferCancelComment", "");
lineIdsArray.put(lineIdObject);
requestparams.put("LineIDs", lineIdsArray);
} catch (JSONException e) {
}
System.out.println(requestparams);
}
问题内容: 我读了一些将jsons发布到服务器的示例。 有人说: OkHttp是Java提供的HttpUrlConnection接口的实现。它提供用于编写内容的输入流,并且不知道(或不在乎)内容的格式。 现在,我想用名称和密码的参数对URL进行常规发布。 这意味着我需要自己将名称和值对编码为流? 问题答案: 当前接受的答案已过期。现在,如果您想创建一个发布请求并向其中添加参数,则应该使用Mul
问题内容: 我有类似以下内容: 它不断返回500。服务提供商说我需要发送JSON。Apache HttpClient 3.1+如何完成? 问题答案: Apache HttpClient对JSON一无所知,因此您需要分别构造JSON。为此,我建议从json.org检出简单的JSON- java 库。(如果“ JSON- java”不适合您,则json.org列出了大量可用不同语言提供的库。) 生成J
问题内容: 我是Json解析的新手。我正在尝试使用读取json数据,但是在发送参数和使用POST方法时我有点困惑。在我可以发送方法类型,URL,参数的情况下,但是在如何发送诸如用户名和密码之类的参数时,我使用POST方法。请帮帮我。这是我编写的代码。 我的json数据就像: 参数未发送。请帮我解决这个问题。先感谢您。 问题答案: 当使用JsonArrayRequest和POST方法时,这解决了我传
问题内容: 我想使用wget将图片(使用身份验证令牌“ AUTH_1624582364932749DFHDD”)上传到远程服务器到“ test”文件夹。 该命令不起作用(授权失败),我想确保它与语法无关: 有什么建议么? 问题答案: Wget当前仅支持x-www-form-urlencoded数据。不是用于将文件作为表单附件传输,而是需要格式为的数据。 并以相同的方式工作:唯一的不同是,您可以在命
我正在尝试从一个简单的Java项目创建一个HTTP POST请求。 我需要通过两个请求保留会话和cookie,所以我选择了Apache HttpClient。 代码编译时没有错误,也没有运行,但返回的内容长度为零,我不明白为什么。 结果是: 更新:我发现响应状态是302(已找到),当我从邮递员那里做同样的请求时,它是200(OK)。 任何人都可以告诉我我的代码有什么问题吗? 谢谢
问题内容: 我有多个Ajax请求每分钟都有一些请求数据,而其他请求是由用户通过ui发起的。 该请求可能由于身份验证失败而失败。我设置了一个全局方法来捕获任何失败的请求。 发现错误后,我将重置授权。重置授权是可行的,但是用户必须手动重新启动ajax调用(通过ui)。 如何使用最初发送的jqxhr重新发送失败的请求? (我将jQuery用于Ajax) 问题答案: 发现此帖子表明可以很好地解决此问题。