请帮帮我。 我在java中将http post请求发送到http://ind-kod.org.ua/cgi-bin/decodecode.cgi?c=3255101113-。 之后,我收到回复。响应有不可读的字符
我该怎么做才能正确阅读回复?非常感谢你。
我的PC-Windows 7(64位),适用于Web开发人员的Eclipse Java EE IDE。
版本:Luna Service Release 2(4.4.2) 构建ID:20150219-0600
这是我的Java代码。
final String USER_AGENT = "Mozilla/5.0";
// http://ind-kod.org.ua/cgi-bin/decodecode.cgi?c=3255101113
URL url = new URL("http://ind-kod.org.ua/cgi-bin/decodecode.cgi");
URLConnection conn = url.openConnection();
conn.setRequestProperty("User-Agent", USER_AGENT);
conn.setRequestProperty("Content-Type", "text/html");
conn.setRequestProperty("Accept-Encoding", "gzip");
conn.setDoOutput(true);
OutputStreamWriter writer = new OutputStreamWriter(
conn.getOutputStream());
writer.write("c=3255101113");
writer.flush();
InputStream gzippedResponse = conn.getInputStream();
GZIPInputStream gis = new GZIPInputStream(gzippedResponse);
InputStreamReader inputStreamReader = new InputStreamReader(gis);
BufferedReader reader = new BufferedReader(inputStreamReader);
String readed;
String line;
StringBuffer response = new StringBuffer();
while ((readed = reader.readLine()) != null) {
response.append(readed);
}
writer.close();
reader.close();
System.out.println(response.toString());
这是我的回答。
</head>
<body bgcolor=#00eeff text=#000000>
<table border=0 align=center cellspacing=0 cellpadding=0 width=800px>
<tr><td style="border: solid 1px #ffffff; background: #cccccc;">
<table border=0 align=center cellspacing=0 cellpadding=0 width=100%>
<tr><td>
<!-- Ukrainian Banner Network 160С…60 START -->
<center><script>
//<!--
user = "74694";
page = "2";
pid = Math.round((Math.random() * (10000000 - 1)));
document.write("<iframe src='http://banner.kiev.ua/cgi-bin/bi.cgi?h" +
user + "&"+ pid + "&" + page + "&5' frameborder=0 vspace=0 hspace=0 " +
" width=160 height=60 marginwidth=0 marginheight=0 scrolling=no>");
document.write("<a href='http://banner.kiev.ua/cgi-bin/bg.cgi?" +
user + "&"+ pid + "&" + page + "&5' target=_top>");
document.write("<img border=0 src='http://banner.kiev.ua/" +
"cgi-bin/bi.cgi?i" + user + "&" + pid + "&" + page +
"&5' width=160 height=60 alt='Ukrainian Banner Network'></a>");
document.write("</iframe>");
//-->
</script><br>
<small><a href=http://banner.kiev.ua/ target=_top>Украинская Баннерная Сеть</a></small>
</center>
<!-- Ukrainian Banner Network 160С…60 END -->
</td>
<td>
<!-- Ukrainian Banner Network 468x60 START -->
<center><script>
//<!--
user = "74694";
page = "2";
pid = Math.round((Math.random() * (10000000 - 1)));
document.write("<iframe src='http://banner.kiev.ua/cgi-bin/bi.cgi?h" +
user + "&"+ pid + "&" + page + "' frameborder=0 vspace=0 hspace=0 " +
" width=468 height=60 marginwidth=0 marginheight=0 scrolling=no>");
document.write("<a href='http://banner.kiev.ua/cgi-bin/bg.cgi?" +
user + "&"+ pid + "&" + page + "' target=_top>");
document.write("<img border=0 src='http://banner.kiev.ua/" +
"cgi-bin/bi.cgi?i" + user + "&" + pid + "&" + page +
"' width=468 height=60 alt='Украинская Баннерная Сеть'></a>");
document.write("</iframe>");
//-->
</script><br>
<small><a href=http://banner.kiev.ua/ target=_top>Украинская Баннерная Сеть</a></small>
</center>
<!-- Ukrainian Banner Network 468x60 END -->
</td>
<td>
<!-- Ukrainian Banner Network 160С…60 START -->
<center><script>
//<!--
user = "74694";
page = "2";
pid = Math.round((Math.random() * (10000000 - 1)));
document.write("<iframe src='http://banner.kiev.ua/cgi-bin/bi.cgi?h" +
user + "&"+ pid + "&" + page + "&5' frameborder=0 vspace=0 hspace=0 " +
" width=160 height=60 marginwidth=0 marginheight=0 scrolling=no>");
document.write("<a href='http://banner.kiev.ua/cgi-bin/bg.cgi?" +
user + "&"+ pid + "&" + page + "&5' target=_top>");
document.write("<img border=0 src='http://banner.kiev.ua/" +
"cgi-bin/bi.cgi?i" + user + "&" + pid + "&" + page +
"&5' width=160 height=60 alt='Ukrainian Banner Network'></a>");
document.write("</iframe>");
//-->
</script><br>
<small><a href=http://banner.kiev.ua/ target=_top>Украинская Баннерная Сеть</a></small>
</center>
<!-- Ukrainian Banner Network 160С…60 END -->
</td></tr>
</table>
</td></tr>
</table>
<br>
<center>
<script type="text/javascript"><!--
google_ad_client = "pub-5530741219705142";
/* 728x15, создано 13.07.09 */
google_ad_slot = "1332980612";
google_ad_width = 728;
google_ad_height = 15;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
</center>
<br>
<table border=0 align=center cellspacing=0 cellpadding=5 width=800px>
<tr><td style="border: solid 1px #ff0000; font-size: 20px; background: #ff9999;">Внимание, информация ориентирована на граждан Украины!</td></tr>
</table>
<br>
<table border=0 align=center cellspacing=0 cellpadding=5 width=800px>
<tr><td style="border: solid 1px #007700; background: #00ccff; vertical-align: t
op;">
<p style="text-align: right;">Ссылка <b>другу</b> <a href="http://ind-kod.org.ua/">http://ind-kod.org.ua/</a></p>
<h2>Результат</h2>
<b>Дата рождения: <u>13.02.1989</u>, пол <u>М</u></b>
<br>
<br>
<hr>
<h3>Немного о внештатном</h3>
<p>Моя сотрудница с кодом <a href="/cgi-bin/decodecode.cgi?c=3127600040">31276<i>000</i>4<i>0</i></a> утверждает что ее дата рождения <b>17</b>.08.1985, при этом данная форма выводит результат "<b>18</b>.08.1985", дополнительная проверка тоже дает результат "<b>18</b>.08.1985". Моё мнение - сотрудники налоговой допустили ошибку при формировании кода.</p>
<!-- p>Если вы получили не правильный результат, и на все 100 уверены что дата и код верны - напишите пожалуйста о том <a href="mailto:pasha_pv@ukr.net?subject=decodecode">мне</a>. Я буду регистрировать такие случаи на этой странице с целью донести пользователями максимальную объективность.</p -->
</td></tr>
</table>
</body>
</html>
答案 0 :(得分:1)
您需要设置输入流的字符编码;您目前正在使用平台默认值 - 这可能与gzip压缩内容的编码不同。如何计算正确的编码是一个不同的问题 - 您需要检查Content-Type标头。
谢谢!你的回答对我有帮助。
更改
InputStreamReader inputStreamReader = new InputStreamReader(gis);
要
InputStreamReader inputStreamReader = new InputStreamReader(gis,StandardCharsets.UTF_8);