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

Программирование Android

Войти
Регистрация
Восстановить пароль
 
lirish
0 / 0 / 0
Регистрация: 31.10.2014
Сообщений: 2
#1

POST запрос - Программирование Android

21.10.2015, 16:30. Просмотров 226. Ответов 1
Метки нет (Все метки)

Существует активити "Register", содержащий несколько элементов edittext. Пытаюсь передать текст из них в другой класс "RestClient", чтобы отправить пост запрос. в Момент нажатия на кнопку приложение останавливается. Что я делаю неправильно?

Класс Register:
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
public class Register extends ActionBarActivity {
 
    EditText name;
    EditText email;
    EditText phone;
    TextView errors_reg;
    Button register;
    RestClient restClient;
 
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.register);
        name = (EditText) findViewById(R.id.name);
        email = (EditText) findViewById(R.id.email_reg);
        phone = (EditText) findViewById(R.id.phone);
        register  = (Button) findViewById(R.id.register);
        errors_reg = (TextView) findViewById(R.id.errors_reg);
    }
 private void init() {
        //getViews();
        //setListeners();
        restClient = RestClient.getInstance();
    }
public void register_click(View view){
        if (name.length()==0 || email.length()==0 || phone.length()==0){
            errors_reg.setText("Все поля обязательны для заполнения");
 
        }
               else{
            new Thread(new Runnable() {
                @Override
                public void run() {
                    
                    String response = RestClient.postRequest(name.toString(), email.toString(), phone.toString());
                   
                    AlertDialog.Builder builder = new AlertDialog.Builder(Register.this);
                    builder.setTitle("")
                            .setMessage(response)
                            .setCancelable(false)
                            .setPositiveButton("OK", new DialogInterface.OnClickListener() {
                                @Override
                                public void onClick(DialogInterface dialog, int which) {
                                    Intent intent = new Intent(Register.this, login.class);
                                    startActivity(intent);
                                    dialog.cancel();
                                }
                            });
                    AlertDialog alert = builder.create();
                    alert.show();
                }
            }).start();
 
                }
    }
Класс RestClient:
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
public class RestClient {
private static final String HTTPS_STRING = "https";
static String REST_SERVER_HTTPS_POST_URI = "https://...";
 
    private RestClient(){
    }
    private static RestClient instance = null;
    public static RestClient getInstance(){
        if(instance == null) {
            instance = new RestClient();
        }
        return instance;
    }
 
    public static String postRequest(String name, String email, String phone) {
 
        String responseString = "";
        HttpClient httpClient = HTTPUtils.getNewHttpClient(REST_SERVER_HTTPS_POST_URI.startsWith(HTTPS_STRING));
        HttpResponse response = null;
        InputStream in;
        URI newURI = URI.create(REST_SERVER_HTTPS_POST_URI);
        HttpPost postMethod = new HttpPost(newURI);
 
        try {
 
            JSONObject postJSON = new JSONObject();
            postJSON.put("name", name);
            postJSON.put("email", email);
            postJSON.put("phone", phone);
 
            postMethod.setEntity(new StringEntity(postJSON.toString(), HTTP.UTF_8));
            postMethod.setHeader("Content-Type", "application/json");
            response = httpClient.execute(postMethod);
            in = response.getEntity().getContent();
            responseString = convertStreamToString(in);
        } catch (Exception e) {}
        return responseString;
    }
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.10.2015, 16:30     POST запрос
Посмотрите здесь:

Не передается POST запрос - Программирование Android
Надо передать POST запрос по адресу http://192.168.43.199/andr/request.php в файле request.php такой код: <?php echo $_POST; ...

Retrofit2, POST запрос - Программирование Android
Пытаюсь передать данные на веб сервер. читал туториалы но не могу понять до конца как это реализовать. Создал интерфейс, подключил все...

POST - запрос на сервер - Программирование Android
Суть задачи: при нажатии на кнопку пост-запросом отправляется переменная со значением. Проблема: при нажатии на кнопку приложение...

ANDROID и POST запрос - Программирование Android
Если честно я не знал в какой раздел лучше написать так как моя задача затрагивает несколько областей программирования. Если что извините...

Потоки и post запрос - Программирование Android
Добрый вечер всем. Уже два дня не могу разобраться с выполнением post запроса на андроиде. Перечитал кучу статей. Знаю что с андроида 2.3...

Post запрос XML - Программирование Android
Добрый день, подскажите, как сделать post запрос, отправляться должна xml вида: <?xml version="1.0" encoding="UTF-8" ?> <data> ...

Android POST запрос iii - Программирование Android
Всем привет, нужна помощь с POST запросами. Вообщем, есть голосовой ассистент "Дуся". И в ней есть скрипт "А-я-яй чат бот". Вообщем это...

Retrofit 2, POST запрос, авторизация - Программирование Android
Добрый день! На собеседовании (Junior Android Dev) мне дали задание написать приложение с авторизацией. Вот текст задачи: Все методы...

POST запрос из андроид приложения - Программирование Android
Здравствуйте, Я хочу отправить POST-запрос из андроид приложения, ответ от сервера получать необязательно. На сайте POST-запрос...

Оборвать POST-запрос к серверу - Программирование Android
Создаю в новом потоке POST запрос к серверу и отправляю на него данные. Делаю проверку, что если по какой-то случайности данные не будут...

Post,Get запрос в новом потоке - Программирование Android
Как переписать код чтобы было возможным отправить запрос на android 4.0.3? Возникает ошибка, читал что это от того что в главном потоке...

POST запрос при открытом WebSocket'e - Программирование Android
Можно ли делать POST запрос к серверу в то время, когда открыт WebSocket?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
YuraAAA
1566 / 1308 / 269
Регистрация: 25.10.2009
Сообщений: 3,424
Записей в блоге: 2
21.10.2015, 19:37     POST запрос #2
Вы создаете диалог не из UI потока
Yandex
Объявления
21.10.2015, 19:37     POST запрос
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru