2012-01-23 22 views
1

我有一個非常大的疑難問題需要使用其他服務上載文件。 我的問題是,我需要的文件,有關文件..所有在一個POST request.I一些信息一起上傳正在使用的Restlet。文件上傳使用的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

我會如果可能,建議在客戶端和服務器端使用Restlet API。這會讓你的代碼更簡單。

通常的解決方法是使用多文件上傳,但是這是沒有必要的,更復雜的總稱。您可以先使用info/metadata創建上載資源,然後將該文件發送給子資源。

在客戶端,您應該加載你的文件使用FileRepresentation,並使用例如ClientResource#後(myFileRep)將其發送到目標服務器。

在服務器端,你應該只檢索發佈實體/表示,並將其保存到本地文件或其他地方,再次使用ClientResource(文件:/// URI方案可與PUT)。