无法读取Java中的url内容

时间:2016-05-26 23:26:13

标签: java httpurlconnection

URL oracle = new URL("hurlAddress/dinfo.cgi");
    BufferedReader in = new BufferedReader(
    new InputStreamReader(oracle.openStream()));

    String inputLine;
    while ((inputLine = in.readLine()) != null)
        System.out.println(inputLine);
    in.close();

我得到了

<html>
<head>
    <!-- RUI RC=100 -->
    <meta http-equiv="content-type" content="text/html;charset=iso-8859-1">
    <title>Don't open this page!</title>
</head>
<body bgcolor="#C0C0C0">
    <center>
    <table border="0" cellpadding="0" cellspacing="4" width="400">
    <tr><td align="center" valign="top" width="48">
            <img src="en/media/ss_wrn.gif" border="0" width=32 height=32>
        </td>
        <td>
            <font size="4" face="Helvetica,Arial">
            <b>User information is disabled.</b><br>
            This operation cannot be accepted. User certification is invalid or date expired.<br>
            Update page.<br>
            </font>
        </td>
    </tr>
    <tr><td></td>
        <td align="right">
            <a href="./_top.htm" target="_top"><img src="en/media/b_ok.gif" border="0"  alt="OK" title="OK"></a>
        </td>
    </tr>
    </table>
    </center>
</body>

我在期待

    <html>

<head>
<meta http-equiv="content-type" content="text/html;charset=iso-8859-1">
<title>Remote UI:Device Information</title>
</head>

<body bgcolor="white" link="blue" alink="red" vlink="blue">
<a name="page_top"></a>
<form>

<SCRIPT LANGUAGE="JavaScript">
var has_fax = false; // true or false
var Fax_Type = "0"; // 0(None),1(PSTN),2(PSTNx2),3(ISDN)
var has_send =true; // has send 
var is_oem = false;
</SCRIPT>

<SCRIPT LANGUAGE="JavaScript">
function reload_device(){
var cgi_str = "./dinfo.cgi?";

// for Expire Cache!!
var now_time = new Date();
cgi_str += "Dummy=" + now_time.getTime();

document.location.href = cgi_str;
}
</SCRIPT>

<table border="0" cellpadding="0" cellspacing="2" width="100%">
<tr>
<td valign="middle"><font size="4" color="#000066"><b><table border="0" cellpadding="0" cellspacing="2">
<tr>
<td rowspan="2" nowrap><img src="en/media/imgs030.gif"></td>
<td nowrap><font face="Helvetica,Arial" size="4" color="#000066"><b>slq29986</b></font></td>
</tr>
<tr>
<td nowrap><font size="2">iR5570</font></td>
</tr>
</table></b></font></td>
<td valign="middle" width="70" align="right"><font size="4" color="black"><b><a href="javascript:reload_device()" target="_self"><img src="en/media/bh_updt.gif" width="28" height="28" border="0" alt="Update" title="Update"></a></b></font></td>
</tr>
</table>
<hr noshade size="2">
<table border="0" cellpadding="0" cellspacing="4" width="100%">
<tr>
<td align="left"><font size="1">&nbsp;Last Updated :05/26/2016 19:30:54</font></td>
</tr>
</table><table border="0" cellspacing="0" cellpadding="2" width="100%">
<tr height="26">
<td bgcolor="#000066" height="26"><font color="white" face="Helvetica,Arial"><b>&nbsp;Device Information</b></font></td>
</tr>
</table><table border="0" cellspacing="2" cellpadding="2" width="100%">

<SCRIPT LANGUAGE="JavaScript">
if(is_oem == false)
{
document.write('<tr>');
document.write('<td width="3%"></td>');
document.write('<td width="40%"><font face="Helvetica,Arial" size="2">Manufacturer :</font></td>');
document.write('<td><font size="4">CANON INC</font></td>');
document.write('</tr>');
}
</SCRIPT>

<tr>
<td width="3%"></td>
<td width="40%"><font face="Helvetica,Arial" size="2">Device Name :</font></td>
<td><font size="4">slq29986</font></td>
</tr>
<tr>
<td width="3%"></td>
<td width="40%"><font face="Helvetica,Arial" size="2">Location :</font></td>
<td><font size="4">MESAAS</font></td>
</tr>
<tr>
<td width="3%"></td>
<td width="40%"><font face="Helvetica,Arial" size="2">Product Name : </font></td>
<td>iR5570</td>
</tr>
<tr>
<td colspan="3"><hr size="1"></td>
</tr>
<tr>
<td width="3%"></td>
<td width="40%"><font face="Helvetica,Arial" size="2">Serial Number :</font></td>
<td>SLQ29986</td>
</tr>
<tr>
<td width="3%"></td>
<td width="40%"><font face="Helvetica,Arial" size="2">Main Board Version :</font></td>
<td>1</td>
</tr>
<tr>
<td width="3%"></td>
<td width="40%"><font face="Helvetica,Arial" size="2">Controller Version :</font></td>
<td>3604.838.3201</td>
</tr>
<tr>
<td width="3%"></td>
<td width="40%"><font face="Helvetica,Arial" size="2">Scanner Version :</font></td>
<td>401.100</td>
</tr>
<tr>
<td width="3%"></td>
<td width="40%"><font face="Helvetica,Arial" size="2">Finisher Version :</font></td>
<td>801</td>
</tr>

<SCRIPT LANGUAGE="JavaScript">
if(has_send == true)
{
document.write('<tr>');
document.write('<td colspan="3">');
document.write('<hr size="1">');
document.write('</td>');
document.write('</tr>');

document.write('<tr>');
document.write('<td width="3%"></td>');
document.write('<td width="40%"><font face="Helvetica,Arial" size="2">Receive E-mail Address :</font></td>');
document.write('<td>aaa@aaa.edu</td>');
document.write('</tr>');
}
</SCRIPT>

<SCRIPT LANGUAGE="JavaScript">
if( has_fax == true )
{
  document.write('<tr>');
  document.write('<td colspan="3">');
  document.write('<hr size="1">');
  document.write('</td>');
  document.write('</tr>');

  document.write('<tr>');
  document.write('<td width="3%"></td>');
  document.write('<td width="40%"><font face="Helvetica,Arial" size="2">Telephone Number :</font></td>');
  document.write('<td></td>');
  document.write('</tr>');

  if( Fax_Type == "3" )
  {
    document.write('<tr>');
    document.write('<td width="3%"></td>');
    document.write('<td width="40%"><font face="Helvetica,Arial" size="2">Subaddress :</font></td>');
    document.write('<td></td>');
    document.write('</tr>');
  }
}
</SCRIPT>

<tr>
<td colspan="3">
<hr size="1">
</td>
</tr>
<tr>
<td width="3%"></td>
<td width="40%"><font face="Helvetica,Arial" size="2">System Manager :</font></td>
<td>MESAAS</td>
</tr>
<tr>
<td width="3%"></td>
<td width="40%"><font face="Helvetica,Arial" size="2">Contact Information :</font></td>
<td></td>
</tr>
<tr>
<td width="3%"></td>
<td width="40%"><font face="Helvetica,Arial" size="2">E-mail Address :</font></td>
<td><a href="mailto:"></a></td>
</tr>
<tr>
<td width="3%"></td>
<td width="40%"><font face="Helvetica,Arial" size="2">Support :</font></td>
<td><a href="" target="_top"></a></td>
</tr>
<tr>
<td width="3%"></td>
<td width="40%"><font face="Helvetica,Arial" size="2">Administrator Comment (E-mail) :</font></td>
<td></td>
</tr>

<tr>
<td colspan="3">
<hr size="1">
</td>
</tr>
<tr>
<td width="3%"></td>
<td width="40%"><font face="Helvetica,Arial" size="2">Contact Person :</font></td>
<td></td>
</tr>
<tr>
<td width="3%"></td>
<td width="40%"><font face="Helvetica,Arial" size="2">Phone :</font></td>
<td></td>
</tr>
<tr>
<td width="3%"></td>
<td width="40%"><font face="Helvetica,Arial" size="2">Comment (E-mail) :</font></td>
<td></td>
</tr>

</table>
<p>
<hr size="2">
<table border="0" cellspacing="0" cellpadding="0" width="100%">
<tr>
<td valign="bottom"><a href="javascript:scrollTo(0,0);"><img src="en/media/ba_ptp.gif" border="0" hspace="2" vspace="2" alt="Back to the Top on This Page" title="Back to the Top on This Page"></a></td>
</tr>
</table>
</form>
</body>

</html>

1 个答案:

答案 0 :(得分:0)

感谢amitmah和Gilbert Le Blanc我安​​装了 firefox上的httpfox插件,我注意到我需要设置一个cookie

URL url = new URL("urlAddress/dinfo.cgi");
HttpURLConnection connection = (HttpURLConnection)url.openConnection();
connection.setRequestProperty("Cookie", "iR=7472571");

try (BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()))){
            StringBuilder builder = new StringBuilder();
            int cp;

            while ((cp = in.read()) != -1) {
                builder.append((char) cp);
            }

            return builder.toString();
}

在浏览器中,如果我访问第一个urlAddress,则会设置此cookie。如果我试图直接访问urlAddress / dinfo.cgi,我会得到相同的“用户信息被禁用...”响应。