java - 如何放心地重置/删除/清除请求正文

标签 java rest api rest-assured rest-assured-jsonpath

我必须将表单参数作为主体传递给我的请求。当我尝试时

 Response post = request.urlEncodingEnabled(true).log().all().config(RestAssured.config()
            .encoderConfig(EncoderConfig.encoderConfig()
                    .encodeContentTypeAs("x-www-form-urlencoded", ContentType.URLENC)))

我收到错误消息“您可以在 POST 中发送表单参数或正文内容,但不能同时发送!”

当我检查日志时,之前的 api 响应作为正文传递给了此请求。如何删除/重置/清除正文并仅传递表单参数。

最佳答案

您应该始终为每个请求使用新的 RequestSpecification 实例。

在每个新请求之前调用如下函数:

public void beforeNewRequest(){
        restUtils.resetRestAssured();            //reset existing instance
        restUtils = RestUtils.getInstance();     //get new instance
    }

RestUtil.java 类

public class RestUtils {

    private static RestUtils apiUtilsInstance = null;

        private RequestSpecification httpRequest;

        private RestUtils() {
            httpRequest = RestAssured.given();

        }

        public static RestUtils getInstance() {

            if (apiUtilsInstance == null)
                apiUtilsInstance = new RestUtils();

            return apiUtilsInstance;
        }

        public RequestSpecification getRequestSpecification() {
            return httpRequest;
        }

        public void resetRestAssured() {
            apiUtilsInstance = null;
        }

 }

关于java - 如何放心地重置/删除/清除请求正文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58762017/

相关文章:

python - 如何在 Python 中访问 SoundCloud-Stream URL?

java 模式和匹配器

java - 跳过列表搜索空指针异常

java - 在gradle中或通过xjc下载复杂的架构/wsdl

c# - 如何使用不记名 token 发布 JSON

mysql - 将Json文件API转为MySQL数据表

java - 在 Base Adapter 中获取对 Spinner 的引用

java - CXF RESTful Client - 如何在没有 Spring 的情况下进行基本的 http 身份验证?

rest - JMeter POST 返回 415 - 不支持的媒体类型

java - 将 Winstone 嵌入 jetty 服务器