Как передать JSONObject в файл PHP? - PullRequest
0 голосов
/ 29 мая 2011

Я пытаюсь отправить некоторые данные в формате JSONObject на веб-сервер.Насколько я понимаю, это делается с помощью httpclient на Android, а затем файл php на сервере.Если это не так, остановитесь здесь и исправьте меня, иначе вот как я пытаюсь отправить данные:

HttpClient httpclient = new DefaultHttpClient();
            HttpPost httppost = new HttpPost("http://myhost/data.php");
            try {
                String UN = username.getText().toString();
                String PW = password.getText().toString();
                String jString = "{\"login\": { \"username\": \""+UN + "\",\"password\": \""+PW+"\"}}";
                JSONDATA = new JSONObject(jString);
                //JSONDATA = new JSONObject();
                //JSONDATA.put("username", UN);
                //JSONDATA.put("password", PW);

, если я использую: httppost.setEntity (new UrlEncodedFormEntity (JSONDATA));

или я должен делать это так:

                StringEntity se = new StringEntity(JSONDATA.toString());  
                se.setContentEncoding(new BasicHeader(HTTP.CONTENT_TYPE, "application/json"));
                HttpEntity entity;
                entity = se;
                httppost.setEntity(entity);
                HttpResponse response;
                response = httpclient.execute(httppost);

1 Ответ

3 голосов
/ 30 мая 2011

Вопрос действительно в том, как вы планируете вытащить данные на сервер? Как выглядит ваш PHP? Что может быть самым простым, это просто передать JSON в качестве параметра:

HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("http://myhost/data.php");
try {
   String UN = username.getText().toString();
   String PW = password.getText().toString();
   String jString = "{\"login\": { \"username\": \""+UN + "\",\"password\":\""+PW+"\"}}";
   List <NameValuePair> nvps = new ArrayList <NameValuePair>();
   nvps.add(new BasicNameValuePair("value", jString));
   httppost.setEntity(new UrlEncodedFormEntity(nvps, HTTP.UTF_8));                 

   HttpResponse response;
   response = httpclient.execute(httppost);

и затем на стороне сервера вы можете просто сделать

<?php
   $obj = json_decode($_POST['value']);

чтобы получить его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...