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

Код: java
1.
2.
JSONParser jsonParser = new JSONParser();
JSONObject json = jsonParser.makeHttpRequest("http://........php", "POST", "{}");
...
Рейтинг: 0 / 0
28.03.2017, 17:56
    #39428665
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хочу послать POST Запрос
JavaStudent,
он умеет
Class OkHttpClient
https://square.github.io/okhttp/3.x/okhttp/okhttp3/OkHttpClient.html
...
Рейтинг: 0 / 0
28.03.2017, 18:55
    #39428706
JavaStudent
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хочу послать POST Запрос
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
28.03.2017, 20:02
    #39428737
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хочу послать POST Запрос
JavaStudentЯ получил от Сервера ответ
проверь Get запрос на како нить mail.ru. Т.е. заведомо рабочий. Будет возврат HTTP.OK = 200
JavaStudentВот кусок php скрипта
на форум-ветку ЯП.
...
Рейтинг: 0 / 0
28.03.2017, 20:02
    #39428738
JavaStudent
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хочу послать POST Запрос
Обернул в 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
28.03.2017, 20:06
    #39428741
JavaStudent
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хочу послать POST Запрос
Сервер скрипт запускает, а вот входные данные не определяет правильно.
Высылает, что не смог найти zakaz, stroka

Как посмотреть, что получил скрипт сервера? Какую строку? В какой кодировке?
...
Рейтинг: 0 / 0
28.03.2017, 20:51
    #39428763
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хочу послать POST Запрос
JavaStudent,
я же сказал - на ветку PHP
...
Рейтинг: 0 / 0
28.03.2017, 20:56
    #39428766
JavaStudent
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хочу послать POST Запрос
Petro123, Спасибо. Направил. Знал бы где заканчивается Android, продолжается PHP, а заканчивается MySQL жил бы в Сочи. ))
...
Рейтинг: 0 / 0
28.03.2017, 21:01
    #39428775
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хочу послать POST Запрос
JavaStudentЗнал бы где заканчивается Android, продолжается PHP,
тут разделил
20343424
...
Рейтинг: 0 / 0
29.03.2017, 01:05
    #39428860
JavaStudent
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хочу послать POST Запрос
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
29.03.2017, 08:49
    #39428926
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хочу послать POST Запрос
JavaStudentPetro123, На форуме PHP ответили, что отправили, то и прилетело....
значит попроси там показать как вывести сырой лог. Т.е. весь текст что прилетел.
JavaStudent
Код: java
1.
echo $_POST['zakaz']


на ветке андроид совсем не должно быть волшебных значков $.
imho
Удачи!
...
Рейтинг: 0 / 0
29.03.2017, 09:57
    #39428964
pand
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хочу послать POST Запрос
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
29.03.2017, 10:12
    #39428977
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хочу послать POST Запрос
pandRetrofit
+1 для REST+JSON
Но если он простой урл составить не может, то тогда сомневаюсь, нужно ли...
...
Рейтинг: 0 / 0
29.03.2017, 11:51
    #39429074
JavaStudent
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хочу послать POST Запрос
Petro123 - Не умничай. Я учусь работать с сервером только 1 день. Просто хочу послать POST запрос из Android в JSON формате и получить ответ от сервера c разбивкой по полям. String получилось отправить и получить, только в ответе символ - (минус) спереди приписывает. Посылаю : 1234 Получаю : -1234. JSON - не катит пока разбираюсь дальше.

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

Petro123 - хочешь себя почувствовать ничтожеством, сыграй со мной в шахматы...
...
Рейтинг: 0 / 0
29.03.2017, 12:15
    #39429103
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хочу послать POST Запрос
JavaStudent,
кто против? Делай.
...
Рейтинг: 0 / 0
29.03.2017, 20:48
    #39429553
JavaStudent
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хочу послать POST Запрос
Решил задачку. Вся загвоздка была в строке, которую отдаем.
"поле=значение&поле=значение"; - и.т.д.
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
30.03.2017, 22:10
    #39430519
A Serious Man
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хочу послать POST Запрос
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
07.05.2017, 08:51
    #39449854
Areostar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хочу послать POST Запрос
JavaStudentЧто надо сделать, чтобы эти строчки выполнились?

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



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


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