不可读的字符http响应

时间:2016-04-24 21:09:25

标签: java http post character

请帮帮我。 我在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 + "&amp;"+ pid + "&amp;" + page + "&amp;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 + "&amp;"+ pid + "&amp;" + page + "&amp;5' target=_top>");
document.write("<img border=0 src='http://banner.kiev.ua/" +
"cgi-bin/bi.cgi?i" + user + "&amp;" + pid + "&amp;" + page +
"&amp;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 + "&amp;"+ pid + "&amp;" + 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 + "&amp;"+ pid + "&amp;" + page + "' target=_top>");
document.write("<img border=0 src='http://banner.kiev.ua/" +
"cgi-bin/bi.cgi?i" + user + "&amp;" + pid + "&amp;" + 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 + "&amp;"+ pid + "&amp;" + page + "&amp;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 + "&amp;"+ pid + "&amp;" + page + "&amp;5' target=_top>");
document.write("<img border=0 src='http://banner.kiev.ua/" +
"cgi-bin/bi.cgi?i" + user + "&amp;" + pid + "&amp;" + page +
"&amp;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>

1 个答案:

答案 0 :(得分:1)

您需要设置输入流的字符编码;您目前正在使用平台默认值 - 这可能与gzip压缩内容的编码不同。如何计算正确的编码是一个不同的问题 - 您需要检查Content-Type标头。

谢谢!你的回答对我有帮助。

更改

InputStreamReader inputStreamReader = new InputStreamReader(gis);

InputStreamReader inputStreamReader = new InputStreamReader(gis,StandardCharsets.UTF_8);