【问题标题】:How do I pass a JSONObject to a PHP file?如何将 JSONObject 传递给 PHP 文件?
【发布时间】:2011-05-28 20:46:51
【问题描述】:

我正在尝试将一些格式化为 JSONObject 的数据提交到 Web 服务器。我的理解是,这是通过 android 上的 httpclient 和服务器上的 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);

【问题讨论】:

    标签: java android json httpclient


    【解决方案1】:

    真正的问题是您打算如何从服务器上提取数据?你的 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']);
    

    检索它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多