Форум программистов, компьютерный форум CyberForum.ru

Установить соединение с веб-сервером rbc.ru и вычитывать с него заголовки новостей - Программирование Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование Android Как организовать ограничение движения персонажа по некоторой площадке произвольной формы http://www.cyberforum.ru/android-dev/thread1080822.html
Как организовать ограничение движения персонажа по некоторой площадке произвольной формы. Например, как в денди версии игры Indiana Jones. Вот пример: Как это делается? Думаю принцип везде одинаков, независимо от платформы.
Программирование Android Как установить будильник на определенный час определенного дня как установить будильник на определенный час определенного дня? Добавлено через 5 минут нашел такую статью но что-то не догоняю как указать дату и время, когда надо зазвонить http://www.mobilab.ru/androiddev/androidalarmmanagertutorial.html Добавлено через 23 часа 7 минут нет идей? http://www.cyberforum.ru/android-dev/thread1080784.html
Создание программ Программирование Android
Есть ли какая-нибудь программа, чтобы создавать приложения для Андроид с самого Андроид-устройства? И если есть, то какая?
Программирование Android Какой ноут взять для нормальной работы Android SDK?
Здравствуйте! Жизнь заставляет меня взяться за написание нативных прог под Андройд, и для меня это важный момент. Работать нужно толко на ноутах с док-стэйшн (носить с работы и обратно). Сейчас у меня старый добрый Dell D830 - которого вполне хватает для програмирования облачных сервисов и фронт-энда. Но когда установил на него Android SDK, то запуск виртуальной машины с Androidом...
Программирование Android Виджет "батарейка" http://www.cyberforum.ru/android-dev/thread1080702.html
Приложение пишу, чтобы лучше понять принцип работы аналогичных. Сами видели батарейку, которая показывает уровень и меняет цвет в зависимости от состояния батареи. В каких направлениях надо копать? Батарейку сляпать в xml вряд ли получится. Думаю, что там дело в анимации. Только воспринимать такое мне сложно. У меня существует три теории: 1) Делается +100500 рисунков, которые меняются в...
Программирование Android Способ быстрого вызова методов Доброго времени суток. Есть методы, которые с помощью RPC передают файлы между двумя телефонами. Но окаалось, что производительность можно увеличить, если убрать RPC и, например, просто описать вызов методов и обработку исключений. Все это делается через JNI. Вопрос: есть ли способ еще быстрее, чем просто создание файлов *.c & *.h и их вызов? Пишу на Си. О С++ имею беглое представление,... подробнее

Показать сообщение отдельно
Max_92
25 / 7 / 2
Регистрация: 26.04.2010
Сообщений: 205
26.01.2014, 11:56  [ТС]     Установить соединение с веб-сервером rbc.ru и вычитывать с него заголовки новостей
Подскажите плз параметры GET-запроса для того, чтоб сервер вернул заголовки новостей, например, с http://sport.rbc.ru/. Насколько я понял, запрос представляет собой строку вида: http://example.com?Parameter1=Parame...arameter2Value. Не шарю в html..

Добавлено через 44 минуты
С парсингом вроде всё понятно на первый взгляд, буду использовать класс HTML Parser. Но вот в моём способе отправки запросов (создал класс QueryClass с нужными для этого методами) не приходит никаких ответов с сервера. Код скину завтра.

Добавлено через 13 часов 36 минут
код класса:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
package com.example.mercuryweb;
 
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import java.net.URLEncoder;
 
import android.util.Log;
 
public class QueryClass {
    
    private StringBuffer query;
    private static final String TAG = "myLogs";
    
    //метод для Формирования строк запроса на сервер
    //строка параметров состоит из пар <имя параметра>=<значение_параметра>, разделённых знаком &
    //в случае с GET запросом, к строке таких пар в начале добавляется знак вопроса '?'
    public StringBuffer QueryString(Object name, Object value) //throws UnsupportedEncodingException
    {
    query = new StringBuffer();
    
    if (!query.toString().equals("")) query.append("&");
    try {
        query.append(URLEncoder.encode(name.toString(), "UTF-8"));
    } catch (UnsupportedEncodingException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    query.append("=");
    try {
        query.append(URLEncoder.encode(value.toString(), "UTF-8"));
    } catch (UnsupportedEncodingException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
        Log.w(TAG, "Исключение в методе QueryString");
    }
    return query;
    }
    
    
    //метод читает данные из входного потока (в свою очередь, возвращаемого методом getInputStream()),
    //и формирует из них строку, сделан для упрошения чтения html данных, получаемых от сервера.
    private String readStreamToString(InputStream in, String encoding)
            throws IOException {
        StringBuffer b = new StringBuffer();
        InputStreamReader r = new InputStreamReader(in, encoding);
        int c;
        while ((c = r.read()) != -1) {
            b.append((char)c);
        }
        return b.toString();
    }
    
    
    //метод для отправки сформированного GET-запроса
       public String getQuery(String url, StringBuffer query) //throws IOException
       {
        //URLConnection - класс, который отвечает за работу по HTTP протоколу,
        //он предоставляет множество методов, по настройке соединения, таймаутов, соединение, работу с потоками
        
        //устанавливаем соединение
        URLConnection conn = null;
        try {
            conn = new URL(url + "?" + query).openConnection();
        } catch (MalformedURLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
            Log.w(TAG, "Исключение MalformedURLException в методе getString");
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
            Log.w(TAG, "Исключение IOException в методе getString");
        }
        //заполним header request парамеры, можно и не заполнять
        conn.setRequestProperty("Referer", "http://google.com/");
        conn.setRequestProperty("Cookie", "a=1");
        //можно установить и другие парамеры, такие как User-Agent
        
        //читаем то, что отдал нам сервер
        String html = null;
        try {
            html = readStreamToString(conn.getInputStream(), "UTF-8");
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return html;
        
    }
    
}
вызов в MainActivity:

Java
1
2
3
4
5
6
7
 private void UpdateNews(boolean enableNotification)
     {
         if (enableNotification) Toast.makeText(mContext, "синхронизация с сайтом", Toast.LENGTH_SHORT).show();
         
         QueryClass qc = new QueryClass();
         tv1.setText(qc.getQuery("http:\\google.com", qc.QueryString("","")));
     }
в чём может быть ошибка?

Добавлено через 9 минут
>tv1.setText(qc.getQuery("http:\\google.com", qc.QueryString("","")));

слэши не в ту сторону) ответ есть. будем дальше разбираться.

Добавлено через 47 минут
Проблема остаётся: гугл возвращает нормальную строку, rbc.ru не возвращает ничего..
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru