使用Java通过HTTP发送文件内容

时间:2013-08-23 10:11:29

标签: java urlconnection

我的应用程序中有一个要求说。我需要从磁盘获取文件的内容并将其发送到某个外部URL,并希望确认外部URL是否获得了内容。

在我的应用程序中,用户可以选择一个文档并说出查看器,以便它显示所选的文件转换版本。对于该文件的转换,我需要将所选文件发送到.Net应用程序URL,该URL将在3D建模文件中将其转换并在我的浏览器上显示响应。

这是我用来发送文件的代码。

try{
  File f = new File("/home/Desktop/rename.txt");
  PostMethod filePost = new PostMethod("external URL");
  Part[] parts = { new FilePart("file", f) };
  filePost.setRequestEntity(new MultipartRequestEntity(parts,
  filePost.getParams()));
  HttpClient client = new HttpClient();
  int status = client.executeMethod(filePost);
  System.out.println(status);
}catch(Exception e){
  e.printStackTrace();
}

1 个答案:

答案 0 :(得分:1)

如果我理解正确,外部URL上的服务器应该转换您正在上传的文件并返回该文件的转换版本。因此,此转换版本将包含在服务器响应的正文中。 因此仅仅检查状态是不够的,但你必须自己得到响应。

您可以使用 client.execute() 代替client.executeMethod()来实现这一目标:

HttpResponse response = client.execute(filePost);
InputStream is = response.getEntity().getContent();

现在,您可以从输入流is读取已转换的数据,然后按照您的喜好继续(例如保存到磁盘等)