powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Android [игнор отключен] [закрыт для гостей] / Хочу послать POST Запрос
18 сообщений из 18, страница 1 из 1
Хочу послать POST Запрос
    #39428591
JavaStudent
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Что надо сделать, чтобы эти строчки выполнились?

Код: java
1.
2.
JSONParser jsonParser = new JSONParser();
JSONObject json = jsonParser.makeHttpRequest("http://........php", "POST", "{}");
...
Рейтинг: 0 / 0
Хочу послать POST Запрос
    #39428665
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JavaStudent,
он умеет
Class OkHttpClient
https://square.github.io/okhttp/3.x/okhttp/okhttp3/OkHttpClient.html
...
Рейтинг: 0 / 0
Хочу послать POST Запрос
    #39428706
JavaStudent
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123, Я пошел через HttpURLConnection:

Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
     HttpURLConnection connect = (HttpURLConnection) url.openConnection();
                connect.setDoOutput(true);
                connect.setRequestMethod("POST");
                String postData="{zakaz:1,stroka:test}";
                OutputStream os = connect.getOutputStream();
                os.write(postData.getBytes());
                StringBuilder response = new StringBuilder();
                BufferedReader br = new BufferedReader(new InputStreamReader(connect.getInputStream()));



Они кидаются байтами друг в друга? На сервере, кто byte в String крутит.
Я получил от Сервера ответ

Код: java
1.
{"success":2,"message":"Error stroka."}


, что он не получил:

Вот кусок php скрипта

if (isset($_POST['zakaz']) && isset($_POST['stroka']))
{
Если сервер получил, то что нужно
}
else
{
Не получил....
$response["success"] = 2;
$response["message"] = "Error stroka.";
echo json_encode($response);
}
...
Рейтинг: 0 / 0
Хочу послать POST Запрос
    #39428737
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JavaStudentЯ получил от Сервера ответ
проверь Get запрос на како нить mail.ru. Т.е. заведомо рабочий. Будет возврат HTTP.OK = 200
JavaStudentВот кусок php скрипта
на форум-ветку ЯП.
...
Рейтинг: 0 / 0
Хочу послать POST Запрос
    #39428738
JavaStudent
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Обернул в JSON. Все равно Сервер не получает:

{"zakaz":1,"stroka":"Yoha"}


Код: javascript
1.
2.
3.
4.
5.
    JSONObject jsonObject = new JSONObject();
                jsonObject.put("zakaz", 1);
                jsonObject.put("stroka", "Yoha");
                OutputStream os = connect.getOutputStream();
                os.write(jsonObject.toString().getBytes());
...
Рейтинг: 0 / 0
Хочу послать POST Запрос
    #39428741
JavaStudent
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сервер скрипт запускает, а вот входные данные не определяет правильно.
Высылает, что не смог найти zakaz, stroka

Как посмотреть, что получил скрипт сервера? Какую строку? В какой кодировке?
...
Рейтинг: 0 / 0
Хочу послать POST Запрос
    #39428763
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JavaStudent,
я же сказал - на ветку PHP
...
Рейтинг: 0 / 0
Хочу послать POST Запрос
    #39428766
JavaStudent
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123, Спасибо. Направил. Знал бы где заканчивается Android, продолжается PHP, а заканчивается MySQL жил бы в Сочи. ))
...
Рейтинг: 0 / 0
Хочу послать POST Запрос
    #39428775
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JavaStudentЗнал бы где заканчивается Android, продолжается PHP,
тут разделил
20343424
...
Рейтинг: 0 / 0
Хочу послать POST Запрос
    #39428860
JavaStudent
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123, На форуме PHP ответили, что отправили, то и прилетело....

JSON... Со стороны Android формирую строку JSON, потом
Код: javascript
1.
getBytes("UTF-8")


В итоге при обращении
Код: javascript
1.
$_POST['zakaz']

- ответ: -


Решил слать 1 строкой без JSON

Если шлю просто строкой
Код: javascript
1.
"zakaz=1,stroka=2"

, потом
Код: javascript
1.
getBytes("UTF-8")



то
Код: java
1.
echo $_POST['zakaz']

выводит -1,stoka=2

Не нравится этот минус и то, что слово zakaz жрет

Русские буквы выводит....
...
Рейтинг: 0 / 0
Хочу послать POST Запрос
    #39428926
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JavaStudentPetro123, На форуме PHP ответили, что отправили, то и прилетело....
значит попроси там показать как вывести сырой лог. Т.е. весь текст что прилетел.
JavaStudent
Код: java
1.
echo $_POST['zakaz']


на ветке андроид совсем не должно быть волшебных значков $.
imho
Удачи!
...
Рейтинг: 0 / 0
Хочу послать POST Запрос
    #39428964
pand
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JavaStudentPetro123, Я пошел через HttpURLConnection:

Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
     HttpURLConnection connect = (HttpURLConnection) url.openConnection();
                connect.setDoOutput(true);
                connect.setRequestMethod("POST");
                String postData="{zakaz:1,stroka:test}";
                OutputStream os = connect.getOutputStream();
                os.write(postData.getBytes());
                StringBuilder response = new StringBuilder();
                BufferedReader br = new BufferedReader(new InputStreamReader(connect.getInputStream()));



}

посмотрите в сторону Retrofit код смотрится гараздо красивее.
Судя по всему Вы пытаетесь вытащить post параметры из обычного боди никаму об этом не сказав
как мне кажется чтобы сервер распарсил параметры нужно указать
Content-Type: application/x-www-form-urlencoded

и параметры в формате
zakaz=1&stroka=test

в вашем случае нужно вычитывать body и парсить руками
...
Рейтинг: 0 / 0
Хочу послать POST Запрос
    #39428977
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pandRetrofit
+1 для REST+JSON
Но если он простой урл составить не может, то тогда сомневаюсь, нужно ли...
...
Рейтинг: 0 / 0
Хочу послать POST Запрос
    #39429074
JavaStudent
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123 - Не умничай. Я учусь работать с сервером только 1 день. Просто хочу послать POST запрос из Android в JSON формате и получить ответ от сервера c разбивкой по полям. String получилось отправить и получить, только в ответе символ - (минус) спереди приписывает. Посылаю : 1234 Получаю : -1234. JSON - не катит пока разбираюсь дальше.

Есть заголовок и есть тело. Разбираюсь где, что, куда писать.

Petro123 - хочешь себя почувствовать ничтожеством, сыграй со мной в шахматы...
...
Рейтинг: 0 / 0
Хочу послать POST Запрос
    #39429103
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JavaStudent,
кто против? Делай.
...
Рейтинг: 0 / 0
Хочу послать POST Запрос
    #39429553
JavaStudent
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Решил задачку. Вся загвоздка была в строке, которую отдаем.
"поле=значение&поле=значение"; - и.т.д.
2 дня играл всеми вариантами и пытался подсунуть строку JSON - не получилось.
Идея была такая: подсунуть 1 строку "поле=значение", где значение было бы в строковом формате JSON
Но не удалось скормить сервер такой котлетой...
Для своей задачки,и особого смысла в JSON не вижу, т.к. удалось получить значения:
$_POST['поле'] в PHP скрипте.

Чтобы JSON соорудить надо копать в сторону JSONparser.

Код: 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.
private void writeToMySQL() {
        Thread threadwriteMySQL = new Thread(runwriteMySQL);
        threadwriteMySQL.start();
    }
    private final Runnable runwriteMySQL = new Runnable() {
        @Override
        public void run() {
            try {
                // пишем
                URL url = new URL("http://someurl/php/add.php");
                final HttpURLConnection connect = (HttpURLConnection) url.openConnection();
                connect.setRequestMethod("POST");
                DataOutputStream os = new DataOutputStream(connect.getOutputStream());
                String str="zakaz=1&stroka=АБВГД&id=12345";
                os.write(str.getBytes("utf-8"));
                os.flush();
                os.close();
                // читаем ответ
                StringBuilder response = new StringBuilder();
                BufferedReader br = new BufferedReader(new InputStreamReader(connect.getInputStream()));
                String line;
                while((line=br.readLine())!=null)
                {
                    response.append(line);
                }
                Log.d("TAG",response.toString()+"="+response.toString().length());
                msg = myhandler.obtainMessage(2731,"Ответ сервера: "+response.toString()+"="+response.length());
                myhandler.sendMessage(msg);
                br.close();
            }catch (IOException e){e.getMessage());}
    };



Модератор: По просьбе автора скрыта ссылка.
...
Рейтинг: 0 / 0
Хочу послать POST Запрос
    #39430519
Фотография A Serious Man
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JavaStudent,

Попробуй чутка добавить этого
авторHttpURLConnection httpConnection = (HttpURLConnection) connection;
httpConnection.setRequestMethod("POST");
httpConnection.setRequestProperty("User-Agent", Build.MANUFACTURER + " " + Build.MODEL);
httpConnection.setRequestProperty("Content-Language", Locale.getDefault().getLanguage());
httpConnection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
httpConnection.setDoOutput(true);
httpConnection.setDoInput(true);
httpConnection.connect();
...
Рейтинг: 0 / 0
Хочу послать POST Запрос
    #39449854
Фотография Areostar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JavaStudentЧто надо сделать, чтобы эти строчки выполнились?

Код: java
1.
2.
JSONParser jsonParser = new JSONParser();
JSONObject json = jsonParser.makeHttpRequest("http://........php", "POST", "{}");



Произнести заклинание(Шутка!)
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / Android [игнор отключен] [закрыт для гостей] / Хочу послать POST Запрос
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]