С Новым годом! Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
Android
245 / 242 / 52
Регистрация: 19.01.2013
Сообщений: 1,896
Записей в блоге: 3

Post запрос

22.04.2014, 14:46. Показов 1634. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как отправить Post запрос и принять ответ сервера ?

Exlipce
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
22.04.2014, 14:46
Ответы с готовыми решениями:

POST Запрос
подскажите что здесь не так, ошибка возникает на строке HttpResponse responsePOST = client.execute(post); public...

Post запрос
Как отправить POST запрос на java?

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

9
216 / 216 / 33
Регистрация: 26.12.2010
Сообщений: 691
22.04.2014, 14:50
POST - запрос на сервер
Post и Get запрос java
Получение JSON с сервера

Поиск по форуму не отменяли
1
Android
245 / 242 / 52
Регистрация: 19.01.2013
Сообщений: 1,896
Записей в блоге: 3
22.04.2014, 15:43  [ТС]
Если можете, напишите пожалуйста рабочий пример в инете много примеров но с не активными URL

Добавлено через 11 минут
NiRamz, час попробую спасибо!


Вставил вот это в OnCreate. и прога вылетает
проект hello world

или он вылетает потому что не существует http://www.site.ru/index.php ?

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 HttpClient httpclient = new DefaultHttpClient();
        HttpPost httppost = new HttpPost("http://www.site.ru/index.php");
 
        try {
            // Добавим данные (пара - "название - значение")
            List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
            nameValuePairs.add(new BasicNameValuePair("json_mobile", "android"));
            httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
            // Выполним запрос
            HttpResponse response = httpclient.execute(httppost);
            
        } catch (ClientProtocolException e) {
            // Ошибка :(
        } catch (IOException e) {
            // Ошибка :(
        }
0
 Аватар для 646kapeh064
59 / 58 / 16
Регистрация: 09.12.2013
Сообщений: 208
22.04.2014, 15:44
kaspersky, видимо потому-что длительный запрос выполняешь не в отдельном потоке, а в основном.
1
216 / 216 / 33
Регистрация: 26.12.2010
Сообщений: 691
22.04.2014, 16:22
вся работа с сетью должна идти в отдельном потоке
0
Android
245 / 242 / 52
Регистрация: 19.01.2013
Сообщений: 1,896
Записей в блоге: 3
22.04.2014, 16:39  [ТС]
Ребята как вот это присобачить ?

Кликните здесь для просмотра всего текста
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
private class ShowDialogAsyncTask extends AsyncTask<Void, Integer, Void> {
 
        int progress_status;
 
        @Override
        protected void onPreExecute() {
            // обновляем пользовательский интерфейс сразу после выполнения задачи
            super.onPreExecute();
 
            Toast.makeText(MyActivity.this, "Вызов onPreExecute()", Toast.LENGTH_SHORT).show();
 
            progress_status = 0;
            txt_percentage.setText("Загрузка 0%");
 
        }
 
        @Override
        protected Void doInBackground(Void... params) {
 
            while(progress_status<100){
 
                progress_status += 2;
 
                publishProgress(progress_status);
                SystemClock.sleep(300);
 
            }
            return null;
        }
 
        @Override
        protected void onProgressUpdate(Integer... values) {
            super.onProgressUpdate(values);
 
            progressBar.setProgress(values[0]);
            txt_percentage.setText("загрузка " +values[0]+"%");
 
        }
 
        @Override
        protected void onPostExecute(Void result) {
            super.onPostExecute(result);
 
            Toast.makeText(MyActivity.this, "Вызов onPostExecute()", Toast.LENGTH_SHORT).show();
 
            txt_percentage.setText("Загрузка завершена!");
            btn_start.setEnabled(true);
        }
    }


Добавлено через 2 минуты
я в правильную сторону копаю ? или все таки чет не то нашел ??)
0
216 / 216 / 33
Регистрация: 26.12.2010
Сообщений: 691
22.04.2014, 16:49
в doInBackground выполняем работу с сетью, в onPostExecute выводим результат.
0
 Аватар для 646kapeh064
59 / 58 / 16
Регистрация: 09.12.2013
Сообщений: 208
22.04.2014, 16:51
В общем, кину код из моего проекта:

IDownload:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
import java.io.InputStream;
 
// author interface: kapehh
public interface IDownload {
    // param sender from C#
    
    void onPreExecute(AsyncDownload sender); // Main thread (access UI)
    
    // InputStream in - data stream from server, here need read bytes
    Object onDownloading(AsyncDownload sender, InputStream in); // NO Main thread
    
    // Object data - data from returned onDownloading
    void onProgressUpdate(AsyncDownload sender, Object data); // Main thread (access UI)
    
    void onPostExecute(AsyncDownload sender); // Main thread (access UI)
}
AsyncDownload:
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
96
97
98
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.TimeUnit;
 
import android.app.ProgressDialog;
import android.content.Context;
import android.os.AsyncTask;
 
// author class: kapehh
public class AsyncDownload extends AsyncTask<String, Object, Void> {
    private IDownload raiseEvent = null;
    private Context activity = null;
    private ProgressDialog dialog = null;
    private Map<String, Object> map = new HashMap<String, Object>();
    
    public AsyncDownload(Context context, IDownload events) {
        raiseEvent = events;
        activity = context;
        DialogInit();
    }
    
    private void DialogInit() {
        dialog = new ProgressDialog(activity);
        dialog.setMessage("Подождите...");
        dialog.setIndeterminate(true);
        dialog.setCancelable(false);
    }
    
    public AsyncDownload setMessage(String message) {
        dialog.setMessage(message);
        return this;
    }
    
    public AsyncDownload addItem(String key, Object value) {
        map.put(key, value);
        return this;
    }
    
    public Object getItem(String key) {
        return map.get(key);
    }
    
    @Override
    protected void onPreExecute() {
        super.onPreExecute();
        try {
            dialog.show();
        } catch(Exception e) { }
        raiseEvent.onPreExecute(this);
    }
    
    @Override
    protected Void doInBackground(String... urls) {
        try {
            InputStream in;
            Object res;
            for (String url : urls) {
                in = downloadFile(url);
                res = raiseEvent.onDownloading(this, in);
                publishProgress(res);
                in.close();
            }
        } catch (Exception e) {
            
        }
        return null;
    }
 
    @Override
    protected void onProgressUpdate(Object... progr) {
        super.onProgressUpdate(progr);
        raiseEvent.onProgressUpdate(this, progr[0]);
    }
    
    @Override
    protected void onPostExecute(Void result) {
        super.onPostExecute(result);
        try {
            dialog.dismiss();
        } catch(Exception e) { }
        raiseEvent.onPostExecute(this);
    }
    
    private InputStream downloadFile(String strUrl) throws Exception {
        URL url = new URL(strUrl);
        URLConnection urlConnection = url.openConnection();
        return urlConnection.getInputStream();
    }
    
}
Utils:
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
import java.io.BufferedReader;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.math.BigInteger;
import java.net.URLEncoder;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
 
import android.util.Log;
 
public class Utils {
    public static final int MAX_BLOCK_SIZE = 8 * 1024; // 8 Kb
    
    public static String urlencode(String in) {
        try {
            return URLEncoder.encode(in, "utf-8");
        } catch (Exception e) { }
        return null;
    }
    
    public static StringBuilder getAllText(InputStream in) throws IOException {
        StringBuilder total = new StringBuilder();
        byte[] data = new byte[MAX_BLOCK_SIZE];
        int nRead;
        while ((nRead = in.read(data)) != -1) {
            total.append(new String(data, 0, nRead));
        }
        return total;
    }
    
    public static byte[] getAllBytes(InputStream in) throws IOException {
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        byte[] data = new byte[MAX_BLOCK_SIZE];
        int nRead;
        while ((nRead = in.read(data)) != -1) {
            baos.write(data, 0, nRead);
        }
        baos.flush();
        return baos.toByteArray();
    }
    
    public static String calculateMD5(File updateFile) throws IOException, NoSuchAlgorithmException {
        MessageDigest digest = MessageDigest.getInstance("MD5");
        InputStream is = new FileInputStream(updateFile);
        byte[] buffer = new byte[MAX_BLOCK_SIZE];
        int read;
        
        while ((read = is.read(buffer)) > 0) {
            digest.update(buffer, 0, read);
        }
        
        byte[] md5sum = digest.digest();
        BigInteger bigInt = new BigInteger(1, md5sum);
        String output = bigInt.toString(16);
        output = String.format("%32s", output).replace(' ', '0');
        is.close();
        
        return output;
    }
    
}
======================================== =======================


Использование:

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
private static class MyDownloadListenerFileContent implements IDownload {
        
        @Override
        public void onPreExecute(AsyncDownload sender) {
            
        }
        
        @Override
        public Object onDownloading(AsyncDownload sender, InputStream in) {
            try {
                return Utils.getAllBytes(in); // InputStream это открытый поток, читаем из него как нам удобно, в данном случае читаем просто как массив байт (для малых размеров)
            } catch (IOException e) {
                e.printStackTrace();
            }
            return null;
        }
 
        @Override
        public void onProgressUpdate(AsyncDownload sender, Object data) {
            // в data содержится byte[] возвращенный из onDownloading
                        // делаем с ним что хотим, например записываем в файл
        }
 
        @Override
        public void onPostExecute(AsyncDownload sender) {
            Toast.makeText(self, "Расписание загружено!", Toast.LENGTH_SHORT).show(); // self это текущая Activity
        }
    }
 
. . .
 
// и собственно, вызов в 1 строку :)
new AsyncDownload(this, new MyDownloadListenerFileContent()).execute("тут свой url");
0
Android
245 / 242 / 52
Регистрация: 19.01.2013
Сообщений: 1,896
Записей в блоге: 3
22.04.2014, 16:58  [ТС]
пробую)
0
 Аватар для dajver
411 / 275 / 22
Регистрация: 18.09.2010
Сообщений: 1,114
22.04.2014, 17:15
http://loopj.com/android-async-http/ отличная библиотека, пользуйся ей
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
22.04.2014, 17:15
Помогаю со студенческими работами здесь

post запрос
public String postData() { String str = null; HttpClient httpclient = new DefaultHttpClient(); HttpPost httppost =...

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru