【发布时间】: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