2
所以我現在搜索了很多樣本代碼,但是我發現的唯一的東西是服務器端的例子,這意味着接收部分。在java中使用Restlet multipart/form-data上傳文件
我想創建一個應用程序,它使用restlet上傳文件,內容類型爲:multipart/form-data
。所以我需要發送部分
如何爲此創建表單?
我想什麼是下面的,但它不工作:使用下面的方法來發布表單和接收JSON表示(postJson意後,讓回JSON)
public Optional<JsonRepresentation> postJson(String url, Object sendObject,MediaType mediaType,Optional<Collection<? extends Header>> headers){
//build resource
ClientResource resource = new ClientResource(url);
//build request with headers
Request request = new Request(Method.POST,url);
headers.ifPresent(col->{
request.getHeaders().addAll(col);
});
//set request
resource.setRequest(request);
//get response
resource.post(sendObject,mediaType);
Representation responseEntity = resource.getResponseEntity();
System.out.println(responseEntity.toString());
try {
//get json representation
JsonRepresentation json = new JsonRepresentation(responseEntity);
return Optional.of(json);
} catch (Exception e) {
}
return Optional.empty();
}
public void UploadFile(File f){
Form fileForm = new Form();
fileForm.add(Disposition.NAME_FILENAME, "test.jpg");
Disposition disposition = new Disposition(Disposition.TYPE_INLINE, fileForm);
FileRepresentation entity = new FileRepresentation(f, MediaType.IMAGE_ALL);
entity.setDisposition(disposition);
FormData fd = new FormData("photo", entity);
FormDataSet fds = new FormDataSet();
fds.setMultipart(true);
fds.setMediaType(MediaType.MULTIPART_FORM_DATA);
fds.getEntries().add(fd);
String url = "http://localhost/uploadFile";
Optional<JsonRepresentation> opJrep = m_RestClient.postJson(url,fds,MediaType.MULTIPART_FORM_DATA, Optional.empty());
}
當一切正常時,接收服務器應該返回一個JSON字符串。
Endpoint實際上不是我的本地主機,而是一個帶有SendPhoto方法的Telegram Bot。在那裏,你可以使用的multipart/form-data的
我能做什麼錯發佈文件作爲圖像?如何使用restlet作爲多部分/表單數據上傳文件(在我的情況下是圖像)?