2016-03-15 118 views
0

想使用REST保证的发布此卷曲要求:无法转换卷曲POST请求放心请求

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

这里是休息保证的要求:

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(); 

卷曲请求返回服务器的预期响应,但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) 

已尝试c悬挂标题,multiPart几种方式没有任何运气。任何帮助非常感激!谢谢。

回答

0

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