Android无法使用JSON PARSER发送数据

时间:2015-05-21 10:01:00

标签: android json

我在下面尝试过我的编码,它无法将字符串“jin”传递给给定的url。 logcat返回成功0并且没有找到产品,请帮忙。

Android coding:
    List<NameValuePair> params = new ArrayList<NameValuePair>();
    params.add(new BasicNameValuePair("Name", "jin"));
    // Making a request to url and getting response
   JSONObject json2 = jsonParser.makeHttpRequest(url, "GET", params);
    Log.d("Response: ", "> " + json2);

PHP Coding:
<?php
// Locate WP Location

    if (isset($_POST['Name']) ) 
    {
    $response["success"] = 1;

    // echoing JSON response
    echo json_encode($response);
    } 

    else 
    {
    // no products found
    $response["success"] = 0;
    $response["message"] = "No products found";

    // echo no users JSON
    echo json_encode($response);
    }

}
?>

1 个答案:

答案 0 :(得分:0)

创建一个新的java文件名JSONParser.java

公共类JSONParser {

static InputStream is = null;
static JSONObject jObj = null;
static String json = "";

// constructor
public JSONParser() {

}

// function get json from url
// by making HTTP POST or GET mehtod
public JSONObject makeHttpRequest(String url, String method,
        List<NameValuePair> params) {

    // Making HTTP request
    try {

        // check for request method
        if(method == "POST"){
            // request method is POST
            // defaultHttpClient
            DefaultHttpClient httpClient = new DefaultHttpClient();
            HttpPost httpPost = new HttpPost(url);
            httpPost.setEntity(new UrlEncodedFormEntity(params));

            HttpResponse httpResponse = httpClient.execute(httpPost);
            HttpEntity httpEntity = httpResponse.getEntity();
            is = httpEntity.getContent();

        }else if(method == "GET"){
            // request method is GET
            DefaultHttpClient httpClient = new DefaultHttpClient();
            String paramString = URLEncodedUtils.format(params, "utf-8");
            url += "?" + paramString;
            HttpGet httpGet = new HttpGet(url);

            HttpResponse httpResponse = httpClient.execute(httpGet);
            HttpEntity httpEntity = httpResponse.getEntity();
            is = httpEntity.getContent();
        }           


    } catch (UnsupportedEncodingException e) {
        e.printStackTrace();
    } catch (ClientProtocolException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }

    try {
        BufferedReader reader = new BufferedReader(new InputStreamReader(
                is, "iso-8859-1"), 8);
        StringBuilder sb = new StringBuilder();
        String line = null;
        while ((line = reader.readLine()) != null) {
            sb.append(line + "\n");
        }
        is.close();
        json = sb.toString();
    } catch (Exception e) {
        Log.e("Buffer Error", "Error converting result " + e.toString());
    }

    // try parse the string to a JSON object
    try {
        jObj = new JSONObject(json);
    } catch (JSONException e) {
        Log.e("JSON Parser", "Error parsing data " + e.toString());
    }

    // return JSON String
    return jObj;

}

}

然后在您的活动中

class Update_Like extends AsyncTask<String, String, String> {
            protected void onPreExecute() {
                super.onPreExecute();
            }
            @SuppressLint("NewApi")
            @Override
            protected String doInBackground(String... args) {
                // TODO Auto-generated method stub
                List<NameValuePair> params = new ArrayList<NameValuePair>();
                 params.add(new BasicNameValuePair("Name", "jin"));
                JSONObject json = jParser.makeHttpRequest("http://", "GET", params);
                Log.d("Connecting", json.toString());
                try {
                     success = json.getInt("success");
                     dataReturn = json.getString("dataReturn");
                } catch (JSONException e) {
                    e.printStackTrace();
                }
                return null;
            }
            protected void onPostExecute(String file_url) { 

}
        }