安卓客户端与mysql服务器端数据交互

1、安卓客户端的配置(上传数据)

package com.dlvtc.upphp;

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

import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.protocol.HTTP;
import org.apache.http.util.EntityUtils;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

public class UpPHPActivity extends Activity {
 private Button button1;
 private TextView textView1;
 public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.main);
  textView1=(TextView) findViewById(R.id.textView1);
  button1=(Button) findViewById(R.id.button1);
  button1.setOnClickListener(new Button.OnClickListener(){        
   public void onClick(View arg0) {
    // TODO Auto-generated method stub
    //URL?
    //      String uriAPI = "http://www.dubblogs.cc:8751/Android/Test/API/Post/index.php";
    String uriAPI = "http://127.0.0.1/link.php";//php服务端地址
    /*建立HTTP Post连线*/
    HttpPost httpRequest =new HttpPost(uriAPI);
    //Post运作传送变数必须用NameValuePair[]阵列储存
    //传参数 服务端获取的方法为request.getParameter("name")
    List <NameValuePair> params=new ArrayList<NameValuePair>();
    params.add(new BasicNameValuePair("username","apple"));//上传的第一个字段
    params.add(new BasicNameValuePair("userpwd","123"));//上传的第二个字段
    try{


     //发出HTTP request
     httpRequest.setEntity(new UrlEncodedFormEntity(params,HTTP.UTF_8));
     //取得HTTP response
     HttpResponse httpResponse=new DefaultHttpClient().execute(httpRequest);

     //若状态码为200 ok
     if(httpResponse.getStatusLine().getStatusCode()==200){
      //取出回应字串
      String strResult=EntityUtils.toString(httpResponse.getEntity());
      textView1.setText(strResult);
     }else{
      textView1.setText("Error Response"+httpResponse.getStatusLine().toString());
     }
    }catch(ClientProtocolException e){
     textView1.setText(e.getMessage().toString());
     e.printStackTrace();
    } catch (UnsupportedEncodingException e) {
     textView1.setText(e.getMessage().toString());
     e.printStackTrace();
    } catch (IOException e) {
     textView1.setText(e.getMessage().toString());
     e.printStackTrace();
    }
   }

  });
 }}

2、处理上传上来的数据

<?php

//保存数据库  
$con = mysql_connect('localhost','root',123) or die('连接数据库失败');  
mysql_select_db('test1',$con);  
 
  mysql_query("INSERT INTO `users` (`username`, `userpwd`) VALUES ('{$_POST['username']}','{$_POST['userpwd']}')");
 
 
mysql_close($con);  
  $posts = array(1);  
    header('Content-type: application/json');  
    echo json_encode(array('posts'=>$posts));   
 

?>

你可能感兴趣的:(安卓上传数据)