Почему мой метод get для HttpURLConnection возвращает 404 на некоторых сайтах?Android

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Почему мой метод get для HttpURLConnection возвращает 404 на некоторых сайтах?

Сообщение Anonymous »

Итак, я использую этот метод, чтобы получить веб-страницу в формате html и вернуть ее в формате json/text:

Код: Выделить всё

public static String get(String urlString, Map headers) {
HttpURLConnection urlConnection;
StringBuilder sb = new StringBuilder();
String jsonString = null;
URL url = null;
try {
url = new URL(urlString);
System.out.println(url);
} catch (MalformedURLException e) {
e.printStackTrace();
}
try {
if (url != null) {
urlConnection = (HttpURLConnection) url.openConnection();
urlConnection.setRequestMethod("GET");
urlConnection.setReadTimeout(10000);
urlConnection.setConnectTimeout(10000);
urlConnection.setInstanceFollowRedirects(true);
urlConnection.setDoOutput(true);
urlConnection.setDoInput(true);
urlConnection.setRequestProperty("Accept", "*/*");
urlConnection.setRequestProperty("Connection", "Keep-Alive");
urlConnection.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36");
if (headers != null && !headers.isEmpty()) {
for (Map.Entry entry : headers.entrySet()) {
urlConnection.setRequestProperty(entry.getKey(), entry.getValue());
}
jsonString = sb.toString();
if (DeviceUtils.isEmulator())
System.out.println("JSON: " + jsonString);
}
} catch (IOException e) {
e.printStackTrace();
}
return jsonString;
}
Но на некоторых сайтах выдает ошибку 404, ничего не печатая. Использование одного и того же сайта с Python Requests.get или cURL дает мне html-страницу. Честно говоря не понимаю в чем дело, так как большинство сайтов работают «из коробки». URL-адрес, который я пытаюсь получить от веб-сайта (не для очистки), — это любой сайт lemmy: lemmy.world, lemmy.today и т. д.
Я пытался использовать get( "https://lemmy.world", ноль); чтобы получить html-страницу, но он дает мне 404 без вывода строки, в то время как другие сайты дают мне html-страницу

Подробнее здесь: https://stackoverflow.com/questions/789 ... some-sites
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»