Страница 1 из 1

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

Добавлено: 04 окт 2014, 14:01
bartle96
Привет всем! Я только учусь программировать под андроид
Есть функция:
[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" />
Помогите пожалуйста, заранее спасибо!

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

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

[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]

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

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

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

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

Добавлено: 04 окт 2014, 17:01
adarash
asynctask

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

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

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

Добавлено: 04 окт 2014, 20:24
adarash