【问题标题】:Unable to translate cURL POST request to REST Assured request无法将 cURL POST 请求转换为 REST Assured 请求
【发布时间】:2016-03-15 18:30:37
【问题描述】:

我正在尝试使用 REST-Assured 来发布这个 cURL 请求:

curl -X POST --data-binary @C:\Leo.jpg "http://<url>/<resource>?apikey={key}&outputMode=json&imagePostMode=raw"

这是 REST-Assured 请求:

File file = new File(<file-path>);

InputStream docstream= getClass().getClassLoader().getResourceAsStream("<image-file-name>.jpg");

Response resp = given()
                .header("Content-Length", file.length())
                .contentType(ContentType.BINARY)
                .contentType("multipart/form-data")
                .contentType("multipart/x-www-form-urlencoded")
                .formParam("apikey", apiKey)
                .formParam("outputMode", "json")
                .formParam("imagePostMode", "raw")
                .content(docstream)
                .multiPart(new MultiPartSpecBuilder(docstream)
                        .fileName(file.getName())
                        .controlName("img_file")
                        .mimeType("image/jpeg").build())
                .post("<resource>")
                .then()
                .statusCode(200)
                .extract().response();

cURL 请求返​​回来自服务器的预期响应,但 REST-Assured 请求返回:

org.apache.http.client.ClientProtocolException
at org.apache.http.impl.client.AbstractHttpClient.doExecute(AbstractHttpClient.java:886)
at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:82)
at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:55)
at org.apache.http.client.HttpClient$execute$0.call(Unknown Source)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:133)
at com.jayway.restassured.internal.RequestSpecificationImpl$RestAssuredHttpBuilder.doRequest(RequestSpecificationImpl.groovy:1827)

已尝试更改标题,multiPart 几种方法,但没有任何运气。非常感谢任何帮助!谢谢。

【问题讨论】:

    标签: java web-services api rest-assured


    【解决方案1】:

    apiKey、outputMode 和 imagePostMode 参数应该是queryParam,而不是formParam

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-02-14
      • 2023-03-20
      • 1970-01-01
      • 1970-01-01
      • 2021-03-03
      • 2022-01-07
      • 2018-04-16
      相关资源
      最近更新 更多