Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在java中进行页面解析时HTTP中出现错误503_Java_Url_Ioexception - Fatal编程技术网

在java中进行页面解析时HTTP中出现错误503

在java中进行页面解析时HTTP中出现错误503,java,url,ioexception,Java,Url,Ioexception,今天,我正在开发一个JavaRMI服务器(以及客户端),它从页面获取信息并返回我想要的内容。我把密码放在这里了。问题是,有时我传递给该方法的url会抛出一个IOException,表示给定的url会产生503HTTP错误。如果总是这样的话,这可能很容易,但问题是它有时会出现。 我有这种方法结构,因为我解析的页面来自一家气象公司,我需要来自许多城市的信息,而不仅仅是一个城市的信息,所以一些城市一有机会就可以完美地工作,而另一些城市则失败了。有什么建议吗 public ArrayList<Me

今天,我正在开发一个JavaRMI服务器(以及客户端),它从页面获取信息并返回我想要的内容。我把密码放在这里了。问题是,有时我传递给该方法的url会抛出一个IOException,表示给定的url会产生503HTTP错误。如果总是这样的话,这可能很容易,但问题是它有时会出现。 我有这种方法结构,因为我解析的页面来自一家气象公司,我需要来自许多城市的信息,而不仅仅是一个城市的信息,所以一些城市一有机会就可以完美地工作,而另一些城市则失败了。有什么建议吗

public ArrayList<Medidas> parse(String url){
        medidas = new ArrayList<Medidas>();
        int v=0;

            String sourceLine;
            String content = "";
        try{
            // The URL address of the page to open.

            URL address = new URL(url);

            // Open the address and create a BufferedReader with the source code.
            InputStreamReader pageInput = new InputStreamReader(address.openStream());
            BufferedReader source = new BufferedReader(pageInput);

            // Append each new HTML line into one string. Add a tab character.
            while ((sourceLine = source.readLine()) != null){
                if(sourceLine.contains("<tbody>")) v=1;
                else if (sourceLine.contains("</tbody>"))
                    break;
                 else if(v==1)
                    content += sourceLine + "\n";
            }
       ........................
       ........................  NOW THE PARSING CODE, NOT IMPORTANT
   }
publicArrayList解析(字符串url){
medidas=新阵列列表();
int v=0;
字符串源线;
字符串内容=”;
试一试{
//要打开的页面的URL地址。
URL地址=新的URL(URL);
//打开地址并用源代码创建一个BufferedReader。
InputStreamReader pageInput=新的InputStreamReader(address.openStream());
BufferedReader source=新的BufferedReader(页面输入);
//将每个新的HTML行追加到一个字符串中。添加一个制表符。
而((sourceLine=source.readLine())!=null){
如果(sourceLine.contains(“”)v=1;
else if(sourceLine.contains(“”)
打破
else如果(v==1)
内容+=源代码行+“\n”;
}
........................
现在,解析代码并不重要
}
  • 检查IOException是否真的不是错误的IOException。请尝试打印URL以验证错误的URL不会导致IOException
  • 您正在解析的文件有多大?可能您的JVM内存不足

  • HTTP 500错误反映服务器错误,因此可能与客户端代码无关。 如果在请求中传递无效参数,则会出现400错误

    503是“服务不可用”的,当服务器过载且无法处理您的请求时,可能会由服务器发送。从可公开访问的服务器发送,这可以解释不稳定的行为

    编辑

    当您检测到503错误时,在代码中构建一个重试处理程序。Apache可以自动为您这样做


    我认为这不是因为它有时有效,而其他情况下无效。页面大约有55000个字符,因此我认为这不是问题所在。您如何将
    字符串url
    传递给该方法?请提供示例url。哪一行引发IOException?url是静态url,在citi之间仅更改4或5个字符es.异常的一个例子是“java.io.IOException:服务器返回HTTP响应代码:503 for URL:“其中1442U字符串是如果存在一个或另一个CityOne,会发生什么变化,这不是我的错。今天一切正常,我想页面服务器已修复。谢谢