引用:http://www.2cto.com/kf/201112/114551.html

Android 实现Post向服务器提交数据

熟悉web编程的都很了解get和post这两种传递表单数据的方法。

这里不具体介绍get和post的区别,如需了解请参考:http://www.2cto.com/kf/201112/114558.html

所谓的get传递数据也是我们最常见的一种,如http://127.0.0.1/index.php?param=androidyue,这种方式直接显示在url中,因此很不安全,

而使用post传递数据则不会直接暴露出来,相对来说更加安全一些。post传递也需要key和value。

以下是android程序示例代码:

package com.google.code.cakedroid.demo;

import java.util.ArrayList;

import java.util.List;

import org.apache.http.HttpResponse;

import org.apache.http.NameValuePair;

import org.apache.http.client.entity.UrlEncodedFormEntity;

import org.apache.http.client.methods.HttpEntityEnclosingRequestBase;

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 com.google.code.cakedroid.R;

import android.app.Activity;

import android.os.Bundle;

import android.view.View;

import android.widget.Button;

import android.widget.TextView;

public class PostMethodDemoActivity extends Activity{

//declare the variables

private TextView tvResult;

private Button btnClick;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

this.initViews();

}

/*

* initialize necessary views

*/

private void initViews(){

this.initButtons();

this.initTextViews();

}

/*

* initialize necessary textviews

*/

private void initTextViews(){

this.tvResult=(TextView)this.findViewById(R.id.tvResult);

}

/*

* initialize necessary buttons

*/

private void initButtons(){

this.btnClick=(Button)this.findViewById(R.id.btnClick);

this.btnClick.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View arg0) {

// TODO Auto-generated method stub

postData();

}

});

}

/*

* post data to remote host

*/

private void postData(){

String destUrl="http://10.0.2.2/form_handler.php";

//instantiate HttpPost object from the url address

HttpEntityEnclosingRequestBase httpRequest =new HttpPost(destUrl);

//the post name and value must be used as NameValuePair

List <NameValuePair> params=new ArrayList<NameValuePair>();

params.add(new BasicNameValuePair("param","I have posted you the data"));

try{

httpRequest.setEntity(new UrlEncodedFormEntity(params,HTTP.UTF_8));

//execute the post and get the response from servers

HttpResponse httpResponse=new DefaultHttpClient().execute(httpRequest);

if(httpResponse.getStatusLine().getStatusCode()==200){

//get the result

String strResult=EntityUtils.toString(httpResponse.getEntity());

tvResult.setText(strResult);

}else{

tvResult.setText("Error Response"+httpResponse.getStatusLine().toString());

}

}catch(Exception e){

System.out.println("error occurs");

}

}

}

服务器断php代码:

<?php

if(isset($_POST['param'])){

echo $_POST['param'].' I received the data';

}

?>

注意:如果如需正常访问,请在manifest.xml中添加internet访问权限。

更多相关文章

  1. android 联系人数据库
  2. android SQLite数据库总结
  3. [Android]代码实现ColorStateList及StateListDrawable
  4. Android 完全退出应用程序实现代码
  5. Eclipse中跟踪调试Android Framework源代码
  6. android应用安全――数据安全
  7. android发送/接收json数据

随机推荐

  1. Android(安卓)Context完全解析,你所不知道
  2. Android(安卓)阅读软件集锦 | 小众软件 >
  3. Android(安卓)刘海屏幕适配方案简析
  4. 第二行代码学习笔记——第二章(2)
  5. 友盟2013年上半年数据报告:与开发者相关的
  6. Android画图之Matrix初识
  7. 最美应用-从Android研发工程师的角度之[最
  8. Android(安卓)Studio多渠道打包
  9. 强悍的跨平台开源多媒体中心XBMC介绍
  10. 已上线运营的斗地主APP项目源码(Android)