【问题标题】:URL not accessible in java code在 Java 代码中无法访问 URL
【发布时间】:2011-05-30 12:19:52
【问题描述】:

可从浏览器访问的 URL 在以 java 代码运行时会给出 404 响应代码。

什么问题??? ..谁能解释一下这个

public String login(String url) {
        URL targetURL;
        long start = 0;
        long end = 0;
        float difference = 0;
        HttpURLConnection httpURLConnection;
        StringBuffer strbufstatus = new StringBuffer();
        try {
            //Connecting to the url
            targetURL = new URL(url);

            start = System.currentTimeMillis();

            httpURLConnection = (HttpURLConnection) targetURL.openConnection();

            httpURLConnection.setUseCaches(false);

            httpURLConnection.setAllowUserInteraction(false);

            httpURLConnection.setDoInput(true);

            httpURLConnection.setRequestMethod("GET");

            httpURLConnection.connect();

            //Getting the respond Code
            int responseCode = httpURLConnection.getResponseCode();

            strbufstatus.append("Response Code===> " + responseCode + "<br>");

            if(responseCode==200){


            // System.out.println("respondcode===> " + responseCode);

            end = System.currentTimeMillis();

            //Calculating the response time

            difference = (end - start);

            difference = difference / 1000;

            // System.out.println("Response Time===> " + difference);

            strbufstatus.append("Rsponse time===> " + difference + "<br>");
            }
            } catch (IOException ex) {
            if (ex.toString().contains("java.net.UnknownHostException:")) {

                strbufstatus.append(" - UnknownHostException has occured during Httpconnection\n");
            } else if (ex.toString().contains("java.net.MalformedURLException: unknown protocol:")) {
                strbufstatus.append(" - Unknown Protocol\n");
            } else if (ex.toString().contains("java.net.ConnectException: Connection timed out: connect")) {
                strbufstatus.append("Connection TimedOut\n");
            } else {
                strbufstatus.append("IOException has occured during Httpconnection \n");
            }
            ex.printStackTrace();
        }
        System.out.println("Status" +strbufstatus);
        return strbufstatus.toString();


    }

【问题讨论】:

  • 没有示例代码?检查特殊字符

标签: java http url


【解决方案1】:

以下可能是问题:

  • 错误代码(如果您对此情况有疑问,请打开代码)
  • 您在代理后面,浏览器已配置,但您的程序没有
  • 如果您尝试访问安全 url HTTPS 那么证书配置

【讨论】:

  • +1 - 根据我的经验,代理问题是最有可能的问题。
【解决方案2】:

来自错误代码 404 的维基百科:

404 或 Not Found 错误消息是一个 HTTP 标准响应代码,表示客户端能够与服务器通信,但服务器找不到请求的内容。

应该有一个人类可读的“原因短语”解释没有找到什么。您只是在阅读响应代码 - 另外阅读和打印:

String responseMessage = httpUrlConnection.responseMessage();

【讨论】:

    【解决方案3】:

    一种可能性是 URL 包含一些在 URL 中无效的字符,例如空格或 ASCII 范围之外的内容。这需要以某种方式转换以作为 URL 发送,例如作为 %HH 转义序列。当您输入地址时,浏览器会自动执行此操作,但并非都以相同的方式执行此操作。例如,有些使用现在推荐的转换为 UTF-8 序列的约定,但有些使用 ISO-8859-1。有些将空格转换为 +,有些转换为 %20。如果您希望程序以与浏览器相同的方式处理 URL,则必须在 Java 代码中进行正确的编码。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多