我有以下关于“放心代码”的帖子请求:
我想把它参数化。请建议。
given().contentType(JSON).with()
.body("\"id\":"123",\"email\":\"abv@gmail.com\"}").expect().body("status",
notNullValue()).when().post("https://localhost:8080/product/create.json");
参数
ID,电子邮件。
当我声明字符串变量id、email并尝试传入body()时,它不起作用。
非工作代码:
String id="123";
String email=abc@gmail.com;
given().contentType(JSON).with()
.body("\"id\":id,\"email\":email}").expect().body("status",
notNullValue()).when().post("https://localhost:8080/product/create.json");
发送包含大量参数的字符串可能会变得乏味,更新包含n个参数的字符串可能会变得耗时。因此,总是建议在body方法中发送对象。
我建议您阅读我关于“放心”的分步教程:
使用Rest-Assured自动化POST请求
看看下面的例子
public class Posts {
public String id;
public String title;
public String author;
public void setId (String id) {
this.id = id;
}
public void setTitle (String title) {
this.title = title;
}
public void setAuthor (String author) {
this.author = author;
}
public String getId () {
return id;
}
public String getTitle () {
return title;
}
public String getAuthor () {
return author;
}
}
在上面的Post类中,我们创建了需要传递给body方法的参数的getter和setter方法。
现在我们将发送POST请求
import org.testng.Assert;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
import static com.jayway.restassured.RestAssured.*
import com.jayway.restassured.RestAssured;
import com.jayway.restassured.http.ContentType;
import com.jayway.restassured.response.Response;
import com.restapiclass.Posts;
public class PostRequestTest {
@BeforeClass
public void setBaseUri () {
RestAssured.baseURI = "http://localhost:3000";
}
@Test
public void sendPostObject () {
Posts post = new Posts();
post.setId ("3");
post.setTitle ("Hello India");
post.setAuthor ("StaffWriter");
given().body (post)
.when ()
.contentType (ContentType.JSON)
.post ("/posts");
}
除了使用POJO,您还可以使用HashMap:
given().
contentType(JSON).
body(new HashMap<String, Object>() {{
put("name", "John Doe");
put("address", new HashMap<String, Object>() {{
put("street", "Some street");
put("areaCode", 21223);
}});
}}).
when().
post("https://localhost:8080/product/create.json")
then().
body("status", notNullValue());
在正文中,我们需要给出精确的字符串,如:
"{\"id\":" + id + ",\"email\":" + email + "}"
这应该行得通。但这不是最好的方法。您应该考虑创建一个包含两个字段(id和email)的类,作为请求的主体,您应该添加对象的json序列化主体。
LoginRequest loginRequest = new LoginRequest(id, email);
String loginAsString = Util.toJson(loginRequest);
given().contentType(JSON).with()
.body(loginAsString)...
试试这种方式。
希望有帮助。
问题内容: 我正在使用 PHP , ExtJS 和 ajax存储 。 它不通过POST或GET发送数据(在创建,更新,销毁时)。在 Chrome控制台中, 我在“ 请求有效负载 ”字段中看到我的传出参数为JSON 。 $ _POST 和 $ _GET 为空。 如何在PHP中检索它? 问题答案: 如果我正确理解这种情况,那么您只是通过http正文传递了json数据,而不是数据。 您可以使用以下代码段
AWS API网关的请求有效负载限制是多少? 我需要发送一个JSON有效载荷与编码文件和一些其他参数到API网关,然后将有效载荷传递给AWS Lambda。 我找不到与此相关的AWS文档。
问题内容: 我正在使用文件上传器,并且需要请求有效负载中的详细信息以进行裁剪。 我没有10位代表来发布POST请求的图片,但是它有 所以从avatar_data我所需要的,,,和。我知道我必须封送JSON,但是我不确定如何达到这一点? 问题答案: 实现接口。
问题内容: 我正在尝试使用具有JSON有效负载的POST请求从REST API获取JSON响应(在发送前应转换为URL编码的文本)。我已经按照一些教程实施了该过程,但是状态代码为400,但出现错误。我可能未在编码给定的JSON字符串或缺少某些内容。请帮我解决这个问题。谢谢。 这是我的代码 问题答案: 在跟踪了许多帖子和教程超过24小时后,我知道我没有正确发送URL参数。而且我还了解到使用 Apac
问题内容: 当我发送AJAX Post请求并在send()方法的queryString中发送参数时, Chrome DeveloperTool的XHR捕获工具显示请求有效负载下的参数。当我使用jquery的post函数时,该工具会在“表单数据”部分下显示参数。 有什么区别 ? 问题答案: 您尚未提供有关如何使用send函数的足够信息,但我假设您未设置mime类型来指定您要发送表单数据 在这种情况下
我是REST API和JSON的新手,我有一个初学者的问题。我试图使用的API根据以下模式请求参数: 请求参数示例如下: 但是,当我试图使用SoapUI和Postman测试这个API时,我只看到参数的键值对,我不知道如何在病人对象中嵌套ID和类型: SoapUI参数 邮递员参数