当前位置: 首页 > 知识库问答 >
问题:

如何重置静态保证API链中的多部分内容类型

齐航
2023-03-14

我在调用API链时遇到问题。

  1. 第一个contentype=JSON的API工作正常
  2. contentype=JSON的第二个API工作正常
  3. Contentype=Multipart的第三个API工作正常
  4. ContentType=JSON的第四个API—不工作

错误:-由于错误而失败的原因。

未能命中URLContent类型应用程序/json在使用多部分时无效,它必须以“multipart/”开头或包含“multipart”。

当第三个API被击中时,我将ContentType设置为Multipart并添加了文件,它工作得很好。

但是当第4个API被命中时,我将ContentType设置回JSON,但它失败了,因为requestspecification仍然将多部分内容附加到请求

如何解决这个问题?

共有1个答案

颛孙晗昱
2023-03-14

由于RequestSpecification没有类似于reset()的方法,因此解决方案可能是为每个请求使用不同的RequestSpecification实例。当像这样的问题发生时,突变对象对您不好。

示例问题:

RequestSpecification reqSpec = new RequestSpecBuilder()
        .addMultiPart(file)
        .build();

given(reqSpec)
        .post("https://postman-echo.com/post");

given(reqSpec.contentType(JSON))
        .body("test")
        .post("https://postman-echo.com/post");

java。lang.IllegalArgumentException:Content-Type application/json在使用多部分时无效,它必须以“multipart/”开头或包含“multipart”

解决方案:

@Test
void SO_69567028() {
    File file = new File("src/test/resources/1.json");

    given(multipartReqSpec())
            .multiPart(file)
            .post("https://postman-echo.com/post");

    given(jsonReqSpec())
            .body("test")
            .post("https://postman-echo.com/post");
}

public RequestSpecification jsonReqSpec() {
    return new RequestSpecBuilder()
            .setContentType(JSON)
            .build();
}

public RequestSpecification multipartReqSpec() {
    return new RequestSpecBuilder()
            .setContentType(MULTIPART)
            .build();
}

 类似资料:
  • 我正在开发Web API的-Web API 2。我的基本需要是创建一个API来更新用户的配置文件。在这种情况下,ios和android将以多部分/表单数据的形式向我发送请求。他们会给我发送一些带有图像的参数。但是每当我尝试创建API时,我的模型每次都是空的。 我在WebApiConfig中也添加了这一行: 这是我的班级: 这是我的控制器: 我甚至没有得到参数值在我的模型。我做错什么了吗? 与此相关

  • 问题内容: 在Scala中使用Java进行模拟的模拟方式是什么: 我特别希望我的内部类 不必 具有完全限定的名称-即,我不需要。因此,在Scala中,我想到的可能是这样的: 但这似乎不起作用:我的scala 似乎在课堂外都看不到。一种解决方案当然是: 这是确定-但因为我的课的名字,真是的“类型” 和实际上有一个很长的名字。所以: 这是冗长而可怕的。我可以替换为just,但是与它所关联的类之间没有明

  • 我试图实现的是重写此方法: 公共布尔onKeyPreIme(int-keyCode,KeyEvent事件) 该方法位于SearchView中。搜索自动完成类http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/5.1.0_r1/android/support/v7/widget/Se

  • 问题内容: 如果存在Kotlin语言,可以用什么替代方法?如果没有,当我需要在Kotlin中使用时如何解决此问题?请参见下面的代码示例: 我搜索了很多东西,没有发现任何东西,非常感谢。 问题答案: 只需在Kotlin中省略。 内部类(持有对外部对象的引用) Java: 科特林: 静态内部类又称为嵌套类(不引用外部对象) Java: 科特林:

  • 静态内部类是指使用 static 修饰的内部类。示例代码如下: 上述示例中的 Inner 类就是静态内部类。静态内部类有如下特点。 1) 在创建静态内部类的实例时,不需要创建外部类的实例。 2) 静态内部类中可以定义静态成员和实例成员。外部类以外的其他类需要通过完整的类名访问静态内部类中的静态成员,如果要访问静态内部类中的实例成员,则需要通过静态内部类的实例。 3) 静态内部类可以直接访问外部类的

  • 我正在尝试通过API发送post请求。呼叫要求: 我已经使用Charles HTTP代理查看需要发送哪些头/内容。 我的请求:(基本上抄录自查尔斯的多部分章节) 如有任何帮助,我们将不胜感激!干杯!