您的位置:首页 > 理论基础 > 计算机网络

Android HTTP GET/POST

2013-04-12 20:58 417 查看
android程序HTTP通信的简单示例。纯粹是为了学习+测试,所以存在代码冗余的现象。从一个最简单的登录验证开始,数据的提交方式分别使用GET和POST,利用Toast来提示登录结果。





android http get and post

android.php源码:

<?php
$REQUEST_METHOD = $_SERVER['REQUEST_METHOD'];
echo $REQUEST_METHOD;
if($REQUEST_METHOD == 'GET'){
$name = $_GET['name'];
$pwd = $_GET['pwd'];

if($name == 'Neeke' && $pwd == 'Neeke'){
echo '你好:'.$name;
}else{
echo '登录失败!';
}
}else if($REQUEST_METHOD == 'POST'){
$name = $_POST['name'];
$pwd = $_POST['pwd'];

if($name == 'Neeke' && $pwd == 'Neeke'){
echo '你好:'.$name;
}else{
echo '登录失败!';
}
}
?>


android主程序源码:

public class Main extends Activity {

private Button btnGet;
private Button btnPost;
private EditText etName;
private EditText etPwd;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
btnGet = (Button) findViewById(R.id.btnGet);
btnPost = (Button) findViewById(R.id.btnPost);
etName = (EditText) findViewById(R.id.etName);
etPwd = (EditText) findViewById(R.id.etPassword);

btnGet.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {

HttpGet request = new HttpGet("http://www.ineeke.com/android/android.php?name="+etName.getText().toString()+"&pwd="+etPwd.getText().toString());
try {
HttpResponse response = new DefaultHttpClient().execute(request);
if(response.getStatusLine().getStatusCode() == 200){
String result = EntityUtils.toString(response.getEntity());
Toast.makeText(Main.this, result, Toast.LENGTH_LONG).show();
}

} catch (Exception e) {

Toast.makeText(Main.this, e.getMessage().toString(), Toast.LENGTH_LONG).show();
e.printStackTrace();
}
}
});

btnPost.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {

HttpPost request = new HttpPost("http://www.ineeke.com/android/android.php");
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("name", etName.getText().toString()));
params.add(new BasicNameValuePair("pwd", etPwd.getText().toString()));

try {
request.setEntity(new UrlEncodedFormEntity(params, HTTP.UTF_8));
HttpResponse response = new DefaultHttpClient().execute(request);
if(response.getStatusLine().getStatusCode() == 200){
String result = EntityUtils.toString(response.getEntity());
Toast.makeText(Main.this, result, Toast.LENGTH_LONG).show();
}
} catch (Exception e) {

Toast.makeText(Main.this, e.getMessage().toString(), Toast.LENGTH_LONG).show();
e.printStackTrace();
}
}
});
}
}


最后,千万千万不要忘记要赋予程序访问网络的权限!因为我就经常忘记权限的问题,导致出了问题郁闷老半天。

在AndroidManifest.xml加入:

<uses-permission android:name="android.permission.INTERNET" />


» 除非另有声明,本站文章均为原创。

 » 转载原创文章请以链接形式注明:

 » 转载自:[Neeke] » [Android HTTP GET/POST]

 » 本文链接地址: http://www.ineeke.com/archives/1317/

 » 如果喜欢可以:点此邮件订阅
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: