2015-09-03 2 views
1

Я пытаюсь отправить запись базы данных с android на сервер с помощью JSON. Код Android отлично работает (ошибка не отображается). Но никакая ценность не отображается на странице сервера. Ниже приведен код android и php.Отправить данные из Android-сервиса на сервер

package com.example.income; 





import java.io.IOException; 
import java.util.ArrayList; 
import java.util.HashMap; 
import java.util.List; 

import org.apache.http.HttpEntity; 
import org.apache.http.HttpResponse; 
import org.apache.http.client.*; 
import org.apache.http.client.methods.HttpPost; 
import org.apache.http.entity.ByteArrayEntity; 
import org.apache.http.entity.StringEntity; 
import org.apache.http.impl.client.DefaultHttpClient; 
import org.apache.http.util.EntityUtils; 
import org.json.JSONArray; 
import org.json.JSONException; 
import org.json.JSONObject; 

import android.app.IntentService; 
import android.content.Intent; 
import android.database.Cursor; 
import android.util.*;; 


public class Background extends IntentService 
{ 
List<HashMap<String, String>> contacts = new ArrayList<HashMap<String, String>>(); 
HashMap<String, String> contact = new HashMap<String, String>(); 

public Background() 
{ 
    super("This is the simple background class"); 
} 

@Override 
protected void onHandleIntent(Intent intent) 
{ 
    Log.v("message","This is simple background service"); 
    Db db =new Db(Background.this,"simple",null,3); 
    Cursor c= db.getData(); 

    if(c.moveToFirst()) 
    { 


     do 
     { 
      String num,dater; 
      num = c.getString(c.getColumnIndex("phone_number")); 
      dater =c.getString(c.getColumnIndex("date")); 

      contact.put("contact", num); 
      contact.put("date", dater); 
      contacts.add(contact); 
     } 
     while (c.moveToNext()); 

     try { 
      sendData(); 
     } catch (ClientProtocolException e) { 
      e.printStackTrace(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } catch (JSONException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 

    } 

    } 

public void sendData() throws ClientProtocolException, IOException, JSONException 
{ 
    Log.v("Let's C","Will it go here?"); 

     HttpClient httpclient = new DefaultHttpClient(); 
     HttpPost httppost = new HttpPost("http://192.168.56.1/android.php"); 


     JSONArray array= new JSONArray(contacts); 

     StringEntity se = new StringEntity(array.toString()); 
     httppost.setEntity(se); 
     httppost.setHeader("Accept", "application/json"); 
     httppost.setHeader("Content-type", "application/json"); 


     HttpResponse response= httpclient.execute(httppost); 
     HttpEntity entity=response.getEntity(); 

    if(entity!=null) 
    { 
     Log.i("response",EntityUtils.toString(entity)); 
    } 

} 
} 

Pho код

$json = $_POST['HTTP_JSON']; 
$data = json_decode($json,true); 
print_r($data); 
+0

Что произойдет, если вы запустите 'print_r ($ _ POST)'? Я не совсем уверен, откуда приходит ваш ключ HTTP_JSON. :-) – ninetwozero

+0

Array() отображается –

+0

print_r ($ data) не дает никакого выхода? –

ответ

0

Я полагаю, что вместо того, чтобы использовать HttpClient и все, что вы используете собственную библиотеку залпа Google и вернуть список HashMap в его getParams() переопределен метод. Это будет очень легко сделать так. Кроме того, вы можете установить заголовки в методе setHeader.

Смежные вопросы