Я использую HttpURLConnection для сканера https://translate.google.com/.HttpURLConnection с https InputStream Garbled
InetSocketAddress addr = new InetSocketAddress("127.0.0.1", 1082);
Proxy proxy = new Proxy(Proxy.Type.HTTP, addr);
url = new URL("https://translate.google.com/");
HttpURLConnection conn = (HttpURLConnection) url.openConnection(proxy);
conn.setRequestProperty("Accept-Encoding", "gzip, deflate, sdch");
conn.setRequestProperty("Connection", "keep-alive");
conn.setRequestProperty("User-Agent",
"Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.76 Mobile Safari/537.36");
conn.setRequestProperty("Accept", "*/*");
Map<String, List<String>> reqHeaders = conn.getHeaderFields();
List<String> reqTypes = reqHeaders.get("Content-Type");
for (String ss : reqTypes) {
System.out.println(ss);
}
InputStream in = conn.getInputStream();
String s = IOUtils.toString(in, "UTF-8");
System.out.println(s.substring(0, 100));
Map<String, List<String>> resHeader = conn.getHeaderFields();
List<String> resTypes = resHeader.get("Content-Type");
for (String ss : resTypes) {
System.out.println(ss);
}
Консоль
Но когда я изменить URL в http://translate.google.com/. Хорошо работает.
Я знаю, что на самом деле HttpURLConnection является HttpsURLConnection, когда я искатель https://translate.google.com/. Я пытаюсь использовать HttpsURLConnection, и он все еще искажен.
Любые предложения?
Я попытаюсь использовать кодировку Accept-Encoding. –
@TomGrylls Try * удален * это. В настоящее время вы лжете службе, которую вы можете обрабатывать кодировкой gzip, когда вы не можете. Или нет. – EJP
Я пробую свой код без Accept-Encoding.It возвращает нормальное значение, хотя и не правильное значение. И я обработаю это. Благодаря! –