Windows:使用Java从URL获取XML数据

时间:2017-11-20 13:52:04

标签: java http

我希望你们一切顺利。我最近一直在搞乱一些Java,试图从XML Link获取数据,并使用BufferedInputStream从中解析我需要的数据。我在Stack O.F上做了一些搜索 - 并想出了这个链接。 How to retrieve XML/RDF data from a dbpedia link or URL?

非常方便,我的很多代码都基于此。虽然有轻微问题,但我的程序正在捕捉错误。我不明白为什么,我希望你们能帮助我。

//import statements;

import java.io.*;
import java.util.Scanner;
import java.net.URL;
import java.net.HttpURLConnection;
import java.net.*;


public class Main{
    public static void main(String[] args){
        Scanner scan = new Scanner(System.in);
        String url = "http://http://battlecc5.evony.com/default.html?logfile/20171113/7d/42/7d42c3c3c89a7de4ec58c1ed0e66fbb1.xml";
    try{
    URL urlObj = new URL(url);
            System.out.println("URL Reached");
        try{
            java.net.HttpURLConnection connection = (HttpURLConnection)urlObj.openConnection();
                    System.out.println("Connection Successful");
            try{
                    InputStream reader = new BufferedInputStream(connection.getInputStream());
                        BufferedReader breader = new BufferedReader(new InputStreamReader(reader));
                        String line;    

                           while((line = breader.readLine()) != null){
                               System.out.println(line);
                           }
                        connection.disconnect();
                        System.out.println("Closed");
            }
            catch(IOException e){System.out.println("Fail 1");}
        }
        catch(IOException e){System.out.println("Fail 2");}
    }
    catch(MalformedURLException e){System.out.println("Failed 3");}
    System.out.println("Reached the End");
}

private boolean isDraftable(int modValue, int input){
    boolean success = false; // Default value
    int num = (int)(input/modValue);
    if((num % 2) == 0){
        //Is Even
        success = true; // isDraftable(true)
    }
    else{
        success = false; // !isDraftable(true)
    }
    return success;
}

private void HCDraft(int input){
    int draftFive = input/20;

    //System.out.println("HC Draft: %d", draftFive);    
}

private void CDraft(int input){
    int draftTen = input/10;

    //System.out.println("Colony Draft: %d", draftTen);
}


}

它尚未完成,但一旦建立连接,它应该只是输出它的发现。之后,我将解析它并进行计算以及与之相关的东西(为此目的有3个私有函数。它们现在没有被使用。)

输入,反馈?我吠叫错了树吗?干杯

1 个答案:

答案 0 :(得分:0)

是的..所以网址确实存在错误。很想知道为什么它不会在malformedURLException上失败。注意我使用在线编译器也很重要,因此我修复了命名错误(C编程习惯)。

程序有效..只是没有得到我需要它实际得到的东西。 (获取其他文件的实际链接必须在别处。他们有奇怪的习惯..)

感谢jsheeran指出了网址!