Java 无法在控制台上打印api响应
出于某种原因,当我尝试使用响应正文的print语句打印响应时,系统不会打印。请帮忙 在下面的API文章中,我正在EclipseNeon3上使用Java,放心,TestNG。使用@DataProvider注释,我在Post请求中传递多个参数以查看调用的响应。任何帮助都将不胜感激Java 无法在控制台上打印api响应,java,eclipse,rest-assured,testng-dataprovider,Java,Eclipse,Rest Assured,Testng Dataprovider,出于某种原因,当我尝试使用响应正文的print语句打印响应时,系统不会打印。请帮忙 在下面的API文章中,我正在EclipseNeon3上使用Java,放心,TestNG。使用@DataProvider注释,我在Post请求中传递多个参数以查看调用的响应。任何帮助都将不胜感激 package com.auto.restassured; import io.restassured.RestAssured; import static io.restassured.RestAssured.basi
package com.auto.restassured;
import io.restassured.RestAssured;
import static io.restassured.RestAssured.basic;
import static io.restassured.RestAssured.given;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
import io.restassured.response.Response;
import org.apache.log4j.Logger;
import org.apache.log4j.BasicConfigurator;
public class FilePostToVirusTotal {
static String baseURL = "https://www.virustotal.com/vtapi/v2/file/report";
Response myResponse;
@DataProvider(name = "md5hashes")
public String[][] createMd5Hashes() {
return new String[][] {
{"md51", "c1105fb75bc00b5e487f7b26a5be7088"},
{"md52", "213f3287c81d09b095334c9f3151cff8"},
{"md53", "b00c2c458b4cf1eb172e354f54f0fe12"},
{"md54", "32ac9b6b6b7cdbfce179acc5edae98c3"},
{"md55", "510b0b81b85c025d538ed4bad78dc64f"},
};
}
@Test(dataProvider = "md5hashes")
public void md5JsonTest(String apikey, String resource)
{
//Catch API response
myResponse = given().param("text", resource).param("text", "34b937e6e2d28ee6f93a70392d958de8ac4a8dd842e08bbca9bcb0d22f9b9960").when().post(baseURL);
//Print Response
System.out.println(myResponse.getBody().asString());
}
}您可以使用内置的日志方法,例如请求时使用
given().log().all()
,响应时使用then().log().all()
public class Request {
public static void main(String[] args) {
RestAssured.baseURI="http://dummy.restapiexample.com";
given().
//queryParam("key","AIzaSyDIQgAh0B4p0SdyYkyW8tlG-y0yJMfss5Y").
body("{\"name\":\"test111\",\"salary\":\"123\",\"age\":\"23\"}").
when().
post("/api/v1/create").
then().assertThat().statusCode(200).and().contentType(ContentType.JSON).and()
.body("status",equalTo("success")).log().body();
System.out.println("Done");
}
}
结果:
{
"status": "success",
"data": {
"name": "test111",
"salary": "123",
"age": "23",
"id": 65
}
}
Done
它根本不打印,或者它不打印你期望的内容?该方法正在运行吗?您在调试器中确认了吗?我在方法和print语句之后打开了调试器。它没有任何作用。然而,该方法是发布请求,但在响应时没有打印任何内容。当我使用邮递员手动执行时,它会做出响应。响应是什么?请检查myResponse.getStatus()--只有当您的ResponseBook为空时,才会发生这种情况。非常感谢。我做了响应。getstatusCode()。它打印了403,这意味着禁止访问我请求访问的站点。既然这是表格,我应该用apikey检查一下吗?但是当我用同样的apikey手动与邮递员联系时,我能够得到响应!很奇怪,我无法得到回复。有什么想法吗?可以使用.log.all()而不是log().body()-->来获取所有详细信息响应端口io.restassured.restassured;导入io.restassured.http.ContentType;导入静态org.hamcrest.Matchers.equalTo;导入静态io.restassured.restassured.given;