Android利用JSON发送数据到服务器

来源:互联网 发布:电信免流软件 编辑:程序博客网 时间:2024/05/17 13:46

Android利用JSON发送数据到服务器



    new Thread()

    {

    @Override

    public void run() {

    // TODO Auto-generated method stub

    Looper.prepare();

    final String urlPath="http://60.176.36.125:8080/wms/resisteruser.do";

    URL url;

    try

    {

    url = new URL(urlPath);

    /*封装子对象*/

    JSONObject ClientKey = new JSONObject();

    ClientKey.put("appusername", userName.getText().toString());

    ClientKey.put("passwd", passWord.getText().toString());

    ClientKey.put("eigenvalues", eigenValues.getText().toString());

    ClientKey.put("telephone", phoneNum.getText().toString());

    ClientKey.put("apprealname", realName.getText().toString());

    ClientKey.put("email", emailNum.getText().toString());

    ClientKey.put("sex", sex);

    /*封装Person数组*/

    JSONObject params = new JSONObject();

    params.put("Person", ClientKey);

    /*把JSON数据转换成String类型使用输出流向服务器写*/

    String content = String.valueOf(params);

    HttpURLConnection conn = (HttpURLConnection) url.openConnection();

    conn.setConnectTimeout(5000);

    conn.setDoOutput(true);//设置允许输出

    conn.setRequestMethod("POST");

    conn.setRequestProperty("User-Agent", "Fiddler");

    conn.setRequestProperty("Content-Type", "application/json");

    conn.setRequestProperty("Charset", encoding);

    OutputStream s = conn.getOutputStream();

    os.write(content.getBytes());

    os.close();

    /*服务器返回的响应码*/

    int code = conn.getResponseCode();

    if(code == 200)

    {

    BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream(), encoding));

    String retData = null;

    String responseData = "";

    while((retData = in.readLine()) != null)

    {

    responseData += retData;

    }

    JSONObject jsonObject = new JSONObject(responseData);

    JSONObject succObject = jsonObject.getJSONObject("regsucc");

    //System.out.println(result);

    String success = succObject.getString("id");

    in.close();

    //System.out.println(success);

    Toast.makeText(Register.this, success, Toast.LENGTH_SHORT).show();

    Intent intentToLogin=new Intent();

    intentToLogin.setClass(Register.this,Login.class);

    startActivity(intentToLogin);

    finish();

    }

    else

    {

    Toast.makeText(getApplicationContext(), "数据提交失败", Toast.LENGTH_SHORT).show();

    }

    }

    catch (Exception e)

    {

    // TODO: handle exception

    throw new RuntimeException(e);

    }

    Looper.loop();

    }

    }.start();

0 0