引用: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. mybatisplus的坑 insert标签insert into select无参数问题的解决
  2. python起点网月票榜字体反爬案例
  3. 《Android开发从零开始》——25.数据存储(4)
  4. Android系统配置数据库注释(settings.db)
  5. Android中不同应用间实现SharedPreferences数据共享
  6. android图表ichartjs
  7. Android内容提供者源码
  8. android SharedPreferences
  9. Android(安卓)Paging组件Demo

随机推荐

  1. iOS 7 需要再和 Android 比比什么?
  2. 从零学Android(四)、适配不同的Android设备
  3. 从底层看android5.0系统的启动过程
  4. 客觀評 Android、iOS、WP7
  5. Android系统触摸屏的校正——http://carv
  6. Android Studio com.android.dex.DexExce
  7. 【Android休眠】之Android休眠机制
  8. Android面试经验二:
  9. 个人认为安卓开发前景
  10. android Uid 与 Pid 的区别与用法