Я пытаюсь отправить данные из приложения Android на веб-сервер. Мое приложение для Android работает успешно. Однако PHP-код имеет проблемы.Отправка данных с Android на сервер с данными JSON
<?php
$json = $_SERVER['HTTP_JSON'];
echo "JSON: \n";
var_dump($json);
echo "\n\n";
$data = json_decode($json,true);
echo "Array: \n";
var_dump($data);
echo "\n\n";
$name = $data['name'];
$pos = $data['position'];
echo "Result: \n";
echo "Name : ".$name."\n Position : ".$pos;
?>
Ошибки:
Notice: Undefined index: HTTP_JSON in C:\wamp\www\jsonTest.php on line 2
(line 2 : $json = $_SERVER['HTTP_JSON'];)
я не смог найти эти проблемы причины. Вы можете мне помочь ? (примечание: Я использую WAMP сервер)
Вот соответствующий Android источник:
// Create a new HttpClient and Post Header
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("10.0.2.2:90/jsonTest.php";);
JSONObject json = new JSONObject();
try {
json.put("name", "flower");
json.put("position", "student");
JSONArray postjson=new JSONArray();
postjson.put(json);
httppost.setHeader("json",json.toString());
httppost.getParams().setParameter("jsonpost",postjson);
System.out.print(json);
HttpResponse response = httpclient.execute(httppost);
if(response != null)
{
InputStream is = response.getEntity().getContent();
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();
}
}
text = sb.toString();
}
tv.setText(text);
}catch (ClientProtocolException e) {
// TODO Auto-generated catch block
} catch (IOException e) {
// TODO Auto-generated catch block
}
Этот код успешно работает на андроид стороне (без ошибок). Но у php есть проблемы. Спасибо.
Спасибо за ответ. Я использовал $ _POST вместо $ _SERVER, но ту же ошибку: Примечание: Неопределенный индекс: HTTP_JSON в C: \ wamp \ www \ jsonTest.php в строке 3. – iremce
Ваш PHP-скрипт не собирает данные JSON ... Сообщение соответствующие разделы кода Android, где вы отправляете JSON на сервер. – nickb
Одна часть кода: // Создаем новый HttpClient и Post Header HttpClient httpclient = new DefaultHttpClient(); HttpPost httppost = new HttpPost ("http: // localhost: 90/jsonTest.php"); JSONObject json = new JSONObject(); try { json.put ("name", "Irem"); json.put ("position", "student"); JSONArray postjson = new JSONArray(); postjson.put (json); httppost.setHeader ("json", json.toString()); httppost.getParams(). SetParameter ("jsonpost", postjson); System.out.print (json); HttpResponse response = httpclient.execute (httppost); – iremce