使用restlet上传文件

时间:2012-01-23 16:00:09

标签: java rest restlet

我有一个非常大的问题。我需要使用休息服务上传文件。 我的问题是我需要在一个POST请求中上传文件和一些关于文件的信息。我正在使用Restlet。

直到现在我没有上传文件只是信息,我使用outputStreamWriter。这是一个例子:

URL adminServerUrl = new URL(wwww....);
HttpURLConnection adminConnection = (HttpURLConnection) adminServerUrl.openConnection();
adminConnection.setRequestMethod("POST");
adminConnection.setDoOutput(true);
adminConnection.setDoInput(true);
adminConnection.setUseCaches(false);
adminConnection.setAllowUserInteraction(false);
OutputStream conOutput = adminConnection.getOutputStream();
        Writer writer = new OutputStreamWriter(conOutput, "UTF-8");
writer.write("&due_date=" + (project.getDueDate());
        writer.write("&source=" + project.getSourceLanguage());
writer.close();
        conOutput.close();

之后我会得到响应,那就是它......但是现在我必须上传文件,我不知道该怎么做

1 个答案:

答案 0 :(得分:1)

如果可能的话,我建议在客户端和服务器端使用Restlet API。这将使您的代码更简单。

通常的解决方案是使用multipart fileupload,但这不是必需的,而且通常更复杂。您可以先使用info / metadata创建上传资源,然后将文件发送到子资源。

在客户端,您应该使用FileRepresentation加载文件,并使用ClientResource#post(myFileRep)将其发送到目标服务器。

在服务器端,您应该只检索已发布的实体/表示并将其保存到本地文件或其他地方,再次使用ClientResource(文件:/// URI方案与PUT一起使用)。