基于apache的httpclient发送请求。
2012-01-14 13:42
429 查看
由于毕业设计要涉及到互联网的的通讯,所以很快就接触到于远程服务器交互。起初想是和服务器的数据库直接连接,后来找了半天,都没有相关的文档,而且也不安全。故转为通过网页来和数据库交互。
服务端:php+apache
user.php
客户端:android
xml布局代码:
界面代码:
最后还要给配置文件加上访问互联网的权限:
效果图:
get时候:
post的时候:
服务端:php+apache
user.php
<?php $name=$_POST['name']; $passwd=$_POST['pwd']; if($name=="yecao" && $passwd=="yecao") { echo "ok"; }else{ $getname=$_GET["getname"]; $getpwd=$_GET["getpwd"]; echo "your name:".$getname."and your pwd:".$getpwd; } ?>
客户端:android
xml布局代码:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <Button android:text="POST发送" android:id="@+id/post" android:layout_width="fill_parent" android:layout_height="wrap_content" /> <Button android:text="GET发送" android:id="@+id/get" android:layout_width="fill_parent" android:layout_height="wrap_content" /> <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/hello" android:id="@+id/showtext" /> </LinearLayout>
界面代码:
package com.loin; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.util.ArrayList; import java.util.List; import org.apache.http.Header; import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.NameValuePair; import org.apache.http.client.ClientProtocolException; import org.apache.http.client.HttpClient; import org.apache.http.client.entity.UrlEncodedFormEntity; import org.apache.http.client.methods.HttpGet; import org.apache.http.client.methods.HttpPost; import org.apache.http.impl.client.DefaultHttpClient; import org.apache.http.message.BasicNameValuePair; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.view.Window; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.TextView; public class LoginActivity extends Activity { /** Called when the activity is first created. */ Button postbt,getbt; TextView tv; public String url; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.main); postbt=(Button)findViewById(R.id.post); getbt=(Button)findViewById(R.id.get); url ="http://192.168.1.6/usr.php"; tv=(TextView)findViewById(R.id.showtext); postbt.setOnClickListener(postclick); getbt.setOnClickListener(getclick); } //post private OnClickListener postclick=new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub postdata(url,"yecao","yecao"); } }; //get private OnClickListener getclick=new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub getdata(url,"yecao","yecao"); } }; //postmethod private void postdata(String url,String nametext,String pwdtext) { try{ HttpClient http=new DefaultHttpClient(); HttpPost post=new HttpPost(url); List<NameValuePair> pair=new ArrayList<NameValuePair>(); pair.add(new BasicNameValuePair("name", nametext)); pair.add(new BasicNameValuePair("pwd", pwdtext)); post.setEntity(new UrlEncodedFormEntity(pair, "utf-8")); HttpResponse response=http.execute(post); HttpEntity ht=response.getEntity(); String result=""; String line=""; if(response.getStatusLine().getStatusCode()==200) { BufferedReader reader=new BufferedReader(new InputStreamReader(ht.getContent()));//以流的方式读取可以避免中文乱码。 while((line=reader.readLine())!=null) { result=result+line; } tv.setText(result); } }catch(Exception e){e.printStackTrace();} }
//getMethod private void getdata(String url,String nametext,String pwdtext) { HttpClient httpclient=new DefaultHttpClient(); url=url+"?getname="+nametext+"&getpwd="+pwdtext; HttpGet get=new HttpGet(url); try { HttpResponse response=httpclient.execute(get); HttpEntity entity=response.getEntity(); String result=""; String line=""; if(response.getStatusLine().getStatusCode()==200) { BufferedReader reader=new BufferedReader(new InputStreamReader(entity.getContent())); while((line=reader.readLine())!=null) { result=result+line; } tv.setText(result); } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
最后还要给配置文件加上访问互联网的权限:
<uses-permission android:name="android.permission.INTERNET"/>
效果图:
get时候:
post的时候:
相关文章推荐
- Java用org.apache.http.client的HttpClient发送Post请求 可获取返回Header
- java apache commons HttpClient发送get和post请求的学习整理(转)
- java apache commons HttpClient发送get和post请求的学习整理
- java apache commons HttpClient发送get和post请求的学习整理
- java apache commons HttpClient发送get和post请求的学习整理
- java apache commons HttpClient发送get和post请求的学习整理
- 使用Apache提供的HttpClient发送https请求
- Java用org.apache.http.client的HttpClient发送Post请求 可获取返回Header
- Java--org.apache.http.client的HttpClient发送Post请求,获取返回Header
- Android使用Apache HttpClient发送GET、POST请求
- java apache commons HttpClient发送get和post请求的学习整理
- java基于ApacheHttpClient发送Http请求实现
- Android使用Apache HttpClient发送GET、POST请求
- Java用org.apache.http.client的HttpClient发送Post请求
- 使用Apache HttpClient4.x 发送 GET POST 请求
- java apache commons HttpClient发送get和post请求的学习整理
- Java HttpPost请求基于apache的httpclient
- android使用apache httpclient发送post请求
- 【实战】(二)android模拟qq登录(apache的httpClient发送get和post请求)