Форум программистов, компьютерный форум, киберфорум
Наши страницы

Передача 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 Платежная система Google http://www.cyberforum.ru/android-dev/thread1257074.html
Здравствуйте. Я делаю приложение, в котором аккаунт *действует по принципу подписки..*С помощью аккаунта пользователь может авторизовываться не только в приложении, но и на сайте. Пользователь должен...
Программирование Android Уведомления в строке состояния. Как сделать уведомление больше в высоту? Что-то не выходит никак сделать уведомление больше 60dp в высоту. Делаю его через notif.conteView = inflater.infalte.... Как то же у Gmail и т.п. получаются большие уведомления. подробнее

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

Передача HttpClient как параметр - Программирование Android

16.09.2014, 20:31. Просмотров 337. Ответов 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();
    }
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.