我一直在网上冲浪寻找一个例子或“在隧道的尽头”关于如何编写一个代码,让我下载一个文件从PHP中的REST服务器到JAVA中的客户端。如何将文件从REST php服务器传输到Java客户端
客户端将使用该文件的ID进行GET请求,然后PHP REST代码应该对该文件进行响应,并且JAVA接收该文件并将其存储在硬盘驱动器中。
任何想法......? 我试图做的PHP REST服务器这样的...:
$file = 'path_to_file/file.mp3';
$content = readfile($file);
这$内容变种,被作为响应...
客户端...我写的是:
try {
URL url = new URL("url/to/rest/server");
HttpURLConnection conn (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");
conn.setRequestProperty("Accept", "Content-Disposition: filename\"music.mp3\"");
if(conn.getResponseCode() != 200) {
throw new RuntimeException("Failed : HTTP error code: " + conn.getResponseCode());
}
BufferedReader br = new BufferedReader(new InputStreamReader((conn.getInputStream())));
try {
String output;
File newFile = newFile("/some/path/file.mp3");
fileWriter fw = new FileWriter(newFile);
while ((output = br.readLine()) != null) {
fw.write(output);
}
fw.close();
} catch (IOException iox) {
//do
}
} catch (MalformedURLException e) {
//do
}
我的例子中的问题是,当我收到客户端上的文件类型的损坏或东西!......我与一个MP3文件的例子,在客户端上的任何音乐播放器说,文件已损坏或者它不起作用。
感谢您的任何帮助。
你做任何基本的调试自己吗?例如比较下载的mp3 v.s.服务器上有什么?文件大小匹配?没有?在文本/十六进制编辑器中打开下载的版本,看看有什么不同? –
我想你应该读写'byte []'s而不是'String's。 –
是你只用PHP编码,还是实际发送头文件等?查看第一个例子来获取更多信息。 http://php.net/manual/en/function.readfile.php –