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

Передача HttpClient как параметр - Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Android Отправка данных на сервер http://www.cyberforum.ru/android-dev/thread1257336.html
Здравствуйте форумчане. Возникла такая проблема, нужно организовать отправку данных из базы данных на сервер. Ничего конкретного сказать не могу по проекту. Но вопрос такой, подскажите, где что почитать, может какую библиотеку посоветуете, или сайт, чтобы изучить этот раздел, "общения приложения с интернетом" :) Заранее благодарю.
Android Отображение бинарного дерева Всем доброго времени суток! Есть у кого-нибудь идеи как реализовать визуальное отображение бинарного дерева на Android? http://www.cyberforum.ru/android-dev/thread1257292.html
Узнать завершил ли работу Activity (не AsyncTask) Android
Добрый день ув. Программисты. - Имеется ImageLoader.java работает без AsyncTask. - И Имеется MainActivity.java главная Activity. Вопрос: Как из MainActivity определить что ImageLoader завершил свою работу???
Не задаётся margin для корневого элемента программно Android
Всем добрый день! Ниже приведён пример XML-файла: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:background="#FFFF55EE" android:layout_marginLeft="50dp" android:layout_width="200dp" android:layout_height="200dp" > <Button android:text="Button"
Android Платежная система Google http://www.cyberforum.ru/android-dev/thread1257074.html
Здравствуйте. Я делаю приложение, в котором аккаунт *действует по принципу подписки..*С помощью аккаунта пользователь может авторизовываться не только в приложении, но и на сайте. Пользователь должен был оплачивать подписку с помощью платежных систем (QIWI, Paypal, Яндекс.Деньги и т. д). Но недавно узнал, что гугл запрещает использовать платежные системы внутри приложения, кроме своей. Можно ли...
Android Уведомления в строке состояния. Как сделать уведомление больше в высоту? Что-то не выходит никак сделать уведомление больше 60dp в высоту. Делаю его через notif.conteView = inflater.infalte.... Как то же у Gmail и т.п. получаются большие уведомления. подробнее

Показать сообщение отдельно
shulyakyarik
10 / 10 / 3
Регистрация: 28.03.2014
Сообщений: 156

Передача HttpClient как параметр - Android

16.09.2014, 20:31. Просмотров 304. Ответов 0
Метки (Все метки)

Есть страница которая отдает Json только если пользователь авторизирован. Для авторизации я отправляю логин и пароль на другую страницу, а потом загружаю данные. Для отправки запроса и скачивания использую AsyncTask. Для авторизации создал отдельный класс, но если использовать его, то вход не происходит. Вот код который работает(без отдельного класса)
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
new AsyncTask<Void, Void, Void>() {
 
            HttpClient httpClient;
            ArrayList<JSONObject> arrayList;
            String parsed,email,pass;
 
            @Override
            protected Void doInBackground(Void... params) {
 
                try {
                    httpClient = new DefaultHttpClient();
                    auth();
                    HttpResponse response;
                    HttpPost myConnection = new HttpPost("http://438351.shckiev.web.hosting-test.net/1/project-manager/1/todolist/getJson");
                    response = httpClient.execute(myConnection);
                    parsed = EntityUtils.toString(response.getEntity(), "UTF-8");
                    toDatabase(parsed);
 
                } catch (Exception e) {
                    Log.e("", "Log catch");
                    parsed = fromDatabase();
                }
 
                return null;
            }
 
            @Override
            protected void onPostExecute(Void aVoid) {
                super.onPostExecute(aVoid);
                ...
            }
 
            public Boolean auth() {
                Log.e("", "Auth");
                database();
                return Post();
            }
 
            public void database(){
                DB db = new DB(getActivity());
                SQLiteDatabase sqLiteDatabase = db.getReadableDatabase();
                Cursor c = sqLiteDatabase.query("account", null, null, null, null, null, null);
                c.moveToFirst();
                email = c.getString(c.getColumnIndex("email"));
                pass = c.getString(c.getColumnIndex("password"));
                sqLiteDatabase.close();
                db.close();
            }
 
            public Boolean Post(){
                boolean result;
                HttpPost httppost = new HttpPost("http://438351.shckiev.web.hosting-test.net/users/login/process");
                HttpResponse httpResponse;
 
                try {
                    List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
                    nameValuePairs.add(new BasicNameValuePair("email", email));
                    nameValuePairs.add(new BasicNameValuePair("password",pass));
                    httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs,"UTF-8"));
                    httpResponse = httpClient.execute(httppost);
                    String s;
                    s = EntityUtils.toString(httpResponse.getEntity(), "UTF-8");
                    Log.e("", s);
                    if(s.equals("1")){
                        result = true;
                    }
                    else result = false;
                } catch (Exception e) {
                    result = false;
                }
                return result;
            }
 
            public String fromDatabase(){
                String s = null;
                DB db = new DB(getActivity());
                SQLiteDatabase sqLiteDatabase = db.getReadableDatabase();
                Cursor c = sqLiteDatabase.query("user_data", null, null, null, null, null, null);
                c.moveToFirst();
                s = c.getString(c.getColumnIndex("todos"));
                sqLiteDatabase.close();
                db.close();
                return s;
            }
 
            public void toDatabase(String s){
                DB db = new DB(getActivity());
                SQLiteDatabase sqLiteDatabase = db.getWritableDatabase();
                ContentValues cv = new ContentValues();
                cv.put("todos",s);
                sqLiteDatabase.update("user_data",cv,"_id=1",null);
                sqLiteDatabase.close();
                db.close();
            }
}
Вот неработающий код

AsyncTask

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
protected Void doInBackground(Void... params) {
 
                try {
                    httpClient = new DefaultHttpClient();
                    new AnotherAuth(getApplecation, httpClient).auth();
                    HttpResponse response;
                    HttpPost myConnection = new HttpPost("http://438351.shckiev.web.hosting-test.net/1/project-manager/1/todolist/getJson");
                    response = httpClient.execute(myConnection);
                    parsed = EntityUtils.toString(response.getEntity(), "UTF-8");
                    toDatabase(parsed);
 
                } catch (Exception e) {
                    Log.e("", "Log catch");
                    parsed = fromDatabase();
                }
 
                return null;
            }
AnotherAuth

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
public class AnotherAuth {
 
    private HttpClient httpClient;
    private String email, pass;
    private Context context;
 
    public AnotherAuth(Context context, HttpClient httpClient){
        this.context = context;
        this.httpClient = httpClient;
    }
 
    public Boolean auth() {
        Log.e("", "Auth");
        fromDatabase();
        return Post();
    }
 
    public Boolean Post(){
        boolean result;
        HttpPost httppost = new HttpPost("http://438351.shckiev.web.hosting-test.net/users/login/process");
        HttpResponse httpResponse;
 
        try {
            List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
            nameValuePairs.add(new BasicNameValuePair("email", email));
            nameValuePairs.add(new BasicNameValuePair("password",pass));
            httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs,"UTF-8"));
            httpResponse = httpClient.execute(httppost);
            String s;
            s = EntityUtils.toString(httpResponse.getEntity(), "UTF-8");
            if(s.equals("1")){
                result = true;
            }
            else result = false;
        } catch (Exception e) {
            result = false;
        }
        return result;
    }
 
    public void fromDatabase(){
        DB db = new DB(context);
        SQLiteDatabase sqLiteDatabase = db.getReadableDatabase();
        Cursor c = sqLiteDatabase.query("account", null, null, null, null, null, null);
        c.moveToFirst();
        email = c.getString(c.getColumnIndex("email"));
        pass = c.getString(c.getColumnIndex("password"));
        sqLiteDatabase.close();
        db.close();
    }
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru