无法在java中获取特定的URL

时间:2014-05-12 17:18:46

标签: java

我一直在使用以下函数来获取和解析URL。

public static void getPage(String url_string, String page)
{
    try
    {
        URL url = new URL(url_string);
        System.out.println(url.getPort() + " " + url.getDefaultPort());
        URLConnection conn = url.openConnection();
        BufferedReader br = 
            new BufferedReader(new InputStreamReader(conn.getInputStream()));
        BufferedWriter bw = new BufferedWriter(new FileWriter(page));
        String line = "";
        while((line = br.readLine()) != null)
        {
           bw.write(line + "\n");
        }
        bw.close();
        br.close();
        System.out.println("Page fetched in "+page);
   }
   catch(Exception e)
   {
        System.out.println("\nError while fetching the page - ");
        e.printStackTrace();
   }
}

我称之为 -

getPage("http://google.com", "tmp.html");

我可以获取任何类型的网址但无法获取此特定网址。

http://www.toysrus.com/storefrontsearch/stores.jsp?skuId=13112916&quantity=1&postalCode=79414&productId=13066123&searchRadius=10000 

虽然我们可以在Firefox和Chrome上看到此页面。它也没有出现在这里:

http://www.rexswain.com/httpview.html

2 个答案:

答案 0 :(得分:0)

http://google.com发送HTTP 302状态代码,这意味着该位置不可用(暂时)。但是您在标题数据中收到了一个新位置。

您可以解析答案标题并从字段location获取新网址。尝试打开这个新网址。

您应该始终检查HTTP请求的标头数据。

答案 1 :(得分:0)

与drkunibar类似,我会说检查标题。您可以在Chrome和Firefox中执行此操作。在Chrome中,打开工具> developer_tools并切换到网络标签。然后加载网页。通过单击该请求,您可以检查有关它的所有内容。如果你没有看到任何奇怪的东西,那么我会尝试在调试器中检查它。祝你好运!