java - JAVA中是否可以有多个URL连接?

标签 java connection

我在使 URL 连接正常工作时遇到一些问题。我发现如果我创建一个 URL 对象,它就可以正常工作。但之后的一切根本不起作用。起初我以为这可能是因为我没有关闭流,但事实并非如此。

-1 = 失败

1 = 成功

Testing:
        URLFail test0 = new URLFail();
        URLFail test1 = new URLFail(1);
        URLFail test2 = new URLFail(1,1);

OutPut:
    0Param  1
    1Param -1
    2Param -1

现在,如果我切换首先创建哪个对象,结果就会改变。

Testing:
        URLFail test2 = new URLFail(1,1);
        URLFail test0 = new URLFail();
        URLFail test1 = new URLFail(1);

OutPut:
      0Param -1
      1Param -1
      2Param  1

在此实例中,只有 test2 成功。这让我相信每个类只能使用一个 URL 流?

这就是我一直用来访问和解析 URL 的流。

        URL url = null;
        URLConnection urlConnection = null;
        try {
            url = new URL("xxxxx"); // In my program this is a proper URL

        } catch (MalformedURLException ex) {
            return -1;
        }

        ArrayList<String> index = new ArrayList<String>();

        try {
            urlConnection = url.openConnection();
            BufferedReader in = new BufferedReader(new InputStreamReader(urlConnection.getInputStream()));

            while (in.ready()) {
                index.add(in.readLine());
            }

            in.close();
        } catch (IOException ex) {
            return -1;

        }

到目前为止我还不知道出了什么问题。我认为这可能是因为我尝试访问同一网站的速度太快?

我还尝试过使用 URL 中的 openStream() 方法,在没有 URLConnection 对象的情况下进行操作。任何帮助将不胜感激,也欢迎任何有关代码本身的一般评论。谢谢!

这是整个代码:

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import java.util.ArrayList;

public class URLFail {
    private int name;

    public static void main(String[] args) {

        URLFail test0 = null;
        URLFail test1 = null;
        URLFail test2 = null;

        try {
            test0 = new URLFail();
            System.out.println("First Complete...");
            Thread.sleep(1000);
            test2 = new URLFail();
            System.out.println("Second Complete...");
            Thread.sleep(1000);
            test1 = new URLFail();
            System.out.println("Third Complete...");
        } catch (InterruptedException e) {
            // TODO: handle exception
        }

        System.out.println();
        System.out.println("0Param " + test0.name);
        System.out.println("1Param " + test1.name);
        System.out.println("2Param " + test2.name);

    }

    public URLFail() {
        name = getAsList();
    }

    public int getAsList() {

        URL url = null;
        URLConnection urlConnection = null;
        try {
            url = new URL("xxxxx");
        } catch (MalformedURLException ex) {
            ex.printStackTrace();
            return -1;
        }

        ArrayList<String> index = new ArrayList<String>();

        try {
            urlConnection = url.openConnection();
            BufferedReader in = new BufferedReader(new InputStreamReader(
                    urlConnection.getInputStream()));

            while (in.ready()) {
                index.add(in.readLine());
            }

            in.close();
        } catch (IOException ex) {
            ex.printStackTrace();
            return -1;
        }

        if (index.isEmpty()) {
            return -1;
        } else {
            return 1;
        }

    }

}

我在 google.com 上尝试过,效果很好,所以它一定是我要连接的主机。有没有办法关闭 URL 连接/断开连接?

最佳答案

在每个“return -1”前面插入一个

ex.printStackTrace();

这很可能会告诉您需要了解的内容。

关于java - JAVA中是否可以有多个URL连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3373787/

相关文章:

java - 在 Java 中将字符串 "10 000.00"转换为 double 时出错

java - 在 String 中扩展环境变量

java - 为什么服务器套接字要先于客户端套接字打开?

networking - haproxy 中每个后端的 maxconn 限制

c# - 创建 ADO.NET 模型时如何在应用程序代码中设置敏感数据?d 一些标记 a

tcp - tcp/ip 协议(protocol)是否解释了连接超时或被拒绝的时间?

JavaFX "toolkit not initialized"在一个测试类中而不是另外两个;区别在哪里?

java - 当我在 jList 中选择项目并使用 getSelectedIndex() 时,它返回 -1

java - Fork/Join 结合 FileChannel 来复制文件

php - 如何从 PHP 检查网络连接或数据库服务器的负载?