Intereting Posts
Charset = utf8 не работает на моей странице PHP Как добавить источник html в DOMElement в PHP? Сохранять несколько моделей за раз в Yii2 не может отправлять электронную почту по адресам в моем собственном домене curl получить удаленный файл и загрузить силу одновременно Как получить данные GPS с устройства с помощью PHP? Изменение одного текстового файла в ZIP-файле, в PHP Установка сервера ns-cert-type для OpenVPN с использованием phpseclib Как сравнить входные данные с mysql с php / sql? Используя DOMDocument, можно ли получить все элементы, которые существуют в пределах определенной DOM? PHP-браузер и os-обнаружение, показывающие хром вместо оперы Получение динамически созданного имени папки с использованием mkdir () в PHP Почему эта переменная POST отправляется через AJAX Null? (JQuery / PHP) Как? URL тщеславия и игнорировать расширение .PHP с .htaccess Разбор сложных данных JSON, возвращаемых API в javascript EDITED: он работал с PHP! CODE ADDED

Android JSON для PHP Server и обратно

Может ли кто-нибудь предложить решение вышеперечисленного?

На данный момент все, что я хочу сделать, это отправить запрос JSON на мой сервер (например: {picture: jpg, color: green}), получить доступ к базе данных PHP, а затем вернуть имя файла из базы данных сервера (затем получить андроид скачать файл – не проблема)

Может кто-нибудь предложить сначала Android Framework, который поможет мне в этом. – POST JSON в php-файл на моем сервере

А во-вторых, php-скрипт, который превратит JSON в читаемый в формате php (доступ к базе данных тоже не является проблемой, но я не могу заставить JSON в объект, чтобы он совпал с базой данных)

благодаря

РЕДАКТИРОВАТЬ

Спасибо за ссылки ниже, но я не прошу об этом из лени, это из-за досады на мою кажущуюся неспособность отправить строку JSON и получить правильный ответ.

Поэтому позвольте мне показать код и выяснить, почему то, что я думаю, должно произойти, не происходит:

GET URL (используя GET, чтобы я мог показать работу)

http://example.com/process/json.php?service=GOOGLE <?php // decode JSON string to PHP object $decoded = json_decode($_GET['json']); // I'm not sure of which of the below should work but i've tried both. $myService = $decoded->service; //$service should equal: GOOGLE $myService = $decoded->{'service'}; //$service should equal: GOOGLE // but the result is always $myService = null - why? ?> 

Хорошо, у меня есть PHP. Нижеследующее возвращает POST-данные и возвращает службу

 <?php $data = file_get_contents('php://input'); $json = json_decode($data); $service = $json->{'service'}; print $service; ?> 

и Android-код:

in onCreate ()

 path = "http://example.com/process/json.php"; HttpClient client = new DefaultHttpClient(); HttpConnectionParams.setConnectionTimeout(client.getParams(), 10000); // Timeout // Limit HttpResponse response; JSONObject json = new JSONObject(); try { HttpPost post = new HttpPost(path); json.put("service", "GOOGLE"); Log.i("jason Object", json.toString()); post.setHeader("json", json.toString()); StringEntity se = new StringEntity(json.toString()); se.setContentEncoding(new BasicHeader(HTTP.CONTENT_TYPE, "application/json")); post.setEntity(se); response = client.execute(post); /* Checking response */ if (response != null) { InputStream in = response.getEntity().getContent(); // Get the // data in // the // entity String a = convertStreamToString(in); Log.i("Read from Server", a); } } catch (Exception e) { e.printStackTrace(); } 

и где бы вы ни захотели

 private static String convertStreamToString(InputStream is) { BufferedReader reader = new BufferedReader(new InputStreamReader(is)); StringBuilder sb = new StringBuilder(); String line = null; try { while ((line = reader.readLine()) != null) { sb.append(line + "\n"); } } catch (IOException e) { e.printStackTrace(); } finally { try { is.close(); } catch (IOException e) { e.printStackTrace(); } } return sb.toString(); } 

На стороне PHP все, что вам нужно, это встроенный json_decode , который будет десериализовать ваш json и вернуть объект (или ассоциативный массив, если вы передадите true в качестве второго аргумента).

На стороне Android вы, вероятно, будете использовать библиотеки HTTP для выполнения вашего HTTP-запроса и обработки ответа. (Но кто-то, кто на самом деле был разработан для Android, может исправить меня)