0

ファイル (XML に似た GPX ファイル) を URL ( 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 のみが取得されます。(あるべき) マップの HTML は取得されません。

4

1 に答える 1

1

私はこれをほぼ正しく行っていることに気付きました。Web サイトの開発者と話した後、GPX ファイルを文字列として送信できることに気付きました。(これは非常に簡単です)次に、この文字列をパラメーターに入れました。

String data = URLEncoder.encode("data", "UTF-8") + "=" + URLEncoder.encode("convertedGPX", "UTF-8");

OutputStreamWriter wr = new OutputStreamWriter(conn.getOutputStream());
wr.write(data);
wr.flush();
于 2013-03-28T15:18:27.287 に答える