Android->JSON->PHP->JSON->Android

Ответить
Аватара пользователя
adarash
Сообщения: 333
Зарегистрирован: 17 июл 2013, 09:59

Android->JSON->PHP->JSON->Android

Сообщение adarash » 13 сен 2013, 09:40

Стоит такая задача: Отправить данные через JSON - объект в php - скрипт, обработать, сформировать также JSON - объект и отправить обратно Android-у.
На Android-е для запроса написан такой код, проверить пока не моги ибо сначала нужен скрипт на php

Код: Выделить всё

	HttpClient client = new DefaultHttpClient();
	HttpConnectionParams.setConnectionTimeout(client.getParams(),10000);
	HttpResponse response;
	JSONObject json = new JSONObject();
	try {
		HttpPost post = new HttpPost(urlUpdate);
		json.put("versiondb", vDBQ);

		StringEntity se = new StringEntity(json.toString());
		se.setContentType(new BasicHeader(HTTP.CONTENT_TYPE,"application/json"));
		post.setEntity(se);
		response = client.execute(post);

		if (response != null) {
			InputStream is = response.getEntity().getContent();

			InputStreamReader isr = new InputStreamReader(is,"UTF-8");

			StringBuffer data = new StringBuffer();
			int c;
			while ((c = isr.read()) != -1) {
				data.append((char) c);
			}

			String message = new String(data.toString());
			result = new JSONObject(message);
		}
	} catch (Exception e) {
		Log.d("JSONError", e.getMessage());
	}
Как это сделать? подскажите пожалуйста. Проблема в том что с php совсем все плохо, а с JSON-ом вообще первый раз сталкиваюсь.

Аватара пользователя
rezak90
Сообщения: 3422
Зарегистрирован: 26 июн 2012, 13:22
Откуда: UA
Контактная информация:

Re: Android->JSON->PHP->JSON->Android

Сообщение rezak90 » 13 сен 2013, 09:58

Можно же загуглить Там делается всё в 3 строчки.
P.S. Если уж совсем тяжко будет то выкладу код со своего сайта, но наверное уже завтра а то сегодня праздник как никак ;)
R.id.team
Политика на форуме запрещена

Аватара пользователя
adarash
Сообщения: 333
Зарегистрирован: 17 июл 2013, 09:59

Re: Android->JSON->PHP->JSON->Android

Сообщение adarash » 13 сен 2013, 10:05

Спасибо за ответ. С праздником тебя.

Аватара пользователя
Finch
Сообщения: 439
Зарегистрирован: 16 июл 2012, 21:37

Re: Android->JSON->PHP->JSON->Android

Сообщение Finch » 13 сен 2013, 14:39

Apache HTTP client has fewer bugs on Eclair and Froyo. It is the best choice for these releases.
For Gingerbread and better, HttpURLConnection is the best choice.
CEO of a company R.id.team

Аватара пользователя
neoksi
Сообщения: 712
Зарегистрирован: 26 июл 2012, 10:42
Контактная информация:

Re: Android->JSON->PHP->JSON->Android

Сообщение neoksi » 13 сен 2013, 15:01

Finch писал(а):Apache HTTP client has fewer bugs on Eclair and Froyo. It is the best choice for these releases.
For Gingerbread and better, HttpURLConnection is the best choice.
Что-то я такого не замечал)

Аватара пользователя
rezak90
Сообщения: 3422
Зарегистрирован: 26 июн 2012, 13:22
Откуда: UA
Контактная информация:

Re: Android->JSON->PHP->JSON->Android

Сообщение rezak90 » 14 сен 2013, 10:23

[syntax=php]<?php
$link = mysql_connect('localhost', '045711223_app', '786546546');
$api_key = "ada75f50dbb95d6faedfef95b5baad8a";
$func_comments = "comments";
$func_posts = "posts";
$code_bad_api = '800';
if (!$link)
{
error('404');
}
header('200');
mysql_select_db('db_name');
$api_key_get = $_GET['apikey'];
$function_get = $_GET['func'];
echo $api_key_get + " " + $function_get;
if(strcmp($api_key_get, $api_key) == 0)
{
if(strcmp($function_get, $func_comments) == 0)
{
getAllComments();
}
else if(strcmp($function_get, $func_posts) == 0)
{
getAllPosts();
}
else
{
echo "неизвестная функция";
}
}
else
{
error(code_bad_api);
}

mysql_close($link);

function error($code)
{
header($code);
die('Error');
}

function getAllComments()
{
$query = "SELECT comment_ID, comment_post_ID, comment_author, comment_author_email, comment_author_url, comment_date_gmt, comment_content FROM `wp_comments` WHERE comment_approved LIKE '1'";
mysql_set_charset('utf8');
$result = mysql_query($query);
$rows = array();
while($r = mysql_fetch_assoc($result))
{
$rows[] = $r;
}
print json_encode($rows);
}

function getAllPosts()
{
$query = "SELECT ID, post_date_gmt, post_content, post_title, post_modified_gmt, guid FROM wp_posts WHERE post_type LIKE 'post';";
mysql_set_charset('utf8');
$result = mysql_query($query);
$rows = array();
while($r = mysql_fetch_assoc($result))
{
$rows[] = $r;
}
print json_encode($rows);
}
?>[/syntax]
R.id.team
Политика на форуме запрещена

Аватара пользователя
adarash
Сообщения: 333
Зарегистрирован: 17 июл 2013, 09:59

Re: Android->JSON->PHP->JSON->Android

Сообщение adarash » 17 сен 2013, 10:02

Огромнейшие спасибо. Еле сам написал. Теперь посмотрел и понял, что все можно было организовать значительно проще.

Ответить