2016-03-15 120 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