Не работает передача POST запроса

Закрыто
bartle96
Сообщения: 37
Зарегистрирован: 04 окт 2014, 13:49

Не работает передача POST запроса

Сообщение bartle96 » 04 окт 2014, 14:01

Привет всем! Я только учусь программировать под андроид
Есть функция:
[syntax=java]public void postData() {
// Create a new HttpClient and Post Header
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("http://www.yandex.ru");
try {
// Add your data
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
nameValuePairs.add(new BasicNameValuePair("id", "12345"));
nameValuePairs.add(new BasicNameValuePair("stringdata", "AndDev is Cool!"));
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));

// Execute HTTP Post Request
HttpResponse response = httpclient.execute(httppost);

} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
} catch (IOException e) {
// TODO Auto-generated catch block
}
}[/syntax]

Я ее вызываю в нужной части программы: postData();
Все компилируется и запускается на телефоне. Но когда запускается я спрашиваю эту функцию, приложение вылетает. Тоже самое на эмуляторе:

Изображение
Пробовал разные URL и переменные
Мне кажется, что дело в Манифесте, хотя там есть:

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

  <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
Помогите пожалуйста, заранее спасибо!

bartle96
Сообщения: 37
Зарегистрирован: 04 окт 2014, 13:49

Re: Не работает передача POST запроса

Сообщение bartle96 » 04 окт 2014, 16:15

Ура, разобрался! Оказывается нужен отдельный поток. Сделал так:

[syntax=java] public void postData() {

new Thread(new Runnable() {
public void run() {


// Create a new HttpClient and Post Header
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("http://windows.twomini.com/login.php");
try {
// Добавим данные (пара - "название - значение")
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
nameValuePairs.add(new BasicNameValuePair("login", "andro"));
nameValuePairs.add(new BasicNameValuePair("pass", "Привет!"));
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));

// Выполним запрос
HttpResponse response = httpclient.execute(httppost);

} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
} catch (IOException e) {
// TODO Auto-generated catch block
}

}
}).start();
}[/syntax]

Нагородил наверное.. Но работает)

bartle96
Сообщения: 37
Зарегистрирован: 04 окт 2014, 13:49

Re: Не работает передача POST запроса

Сообщение bartle96 » 04 окт 2014, 16:56

Нет немного не то. Предположим что я хочу отправить не статичные данные, а из EditText. Я знаю что из патока не получится вызвать: (EditText) findViewById(R.id.in_login);
Как мне быть? =(

Аватара пользователя
adarash
Сообщения: 333
Зарегистрирован: 17 июл 2013, 09:59

Re: Не работает передача POST запроса

Сообщение adarash » 04 окт 2014, 17:01

asynctask

bartle96
Сообщения: 37
Зарегистрирован: 04 окт 2014, 13:49

Re: Не работает передача POST запроса

Сообщение bartle96 » 04 окт 2014, 20:15

А как этим пользоваться? Мне вот из патока нужно вызвать функцию которая в основном и передать ей параметр.
Можно пример, а то плохо понимаю(


Закрыто