我想将文件(GPX文件,类似于XML)上传到网址(http://www.gpsvisualizer.com/map_input)。然后等待生成地图并检索它。开发商已经声明这是可能的,但我没有得到任何结果。 到目前为止,这是我的代码:
private static void postData(File fileName) {
File input = fileName;
//Setup connection
URL url = new URL("http://www.gpsvisualizer.com/map");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setDoOutput(true);
connection.setInstanceFollowRedirects(false);
connection.setRequestMethod("POST");
connection.setRequestProperty("Content-Type", "application/xml");
connection.setRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.0.3705; .NET CLR 1.1.4322; .NET CLR 1.2.30703)");
//Send file
OutputStream os = connection.getOutputStream();
TransformerFactory tf = TransformerFactory.newInstance();
Transformer transformer = tf.newTransformer();
FileReader fileReader = new FileReader(input);
StreamSource source = new StreamSource(fileReader);
StreamResult result = new StreamResult(os);
transformer.transform(source, result);
os.flush();
//Retrieve response
BufferedReader br = new BufferedReader(
new InputStreamReader(connection.getInputStream()));
String line = br.readLine();
while ( line != null ) {
System.out.println(line);
line = br.readLine();
}
br.close();
}
所有这一切,正在设置连接,当我得到响应时,我只获取初始页面的HTML,而不是(应该)映射一个。
答案 0 :(得分:1)
我意识到我差不多正在做这件事。 在与网站开发人员交谈后,我意识到我可以将GPX文件作为字符串发送。 (这很简单) 然后我将这个字符串放入参数中,这些参数有效!
String data = URLEncoder.encode("data", "UTF-8") + "=" + URLEncoder.encode("convertedGPX", "UTF-8");
OutputStreamWriter wr = new OutputStreamWriter(conn.getOutputStream());
wr.write(data);
wr.flush();