使用Httpclient框架提交数据-get

来源:互联网 发布:寻侠九宫突破数据 编辑:程序博客网 时间:2024/06/14 13:15
</pre><pre name="code" class="java"><span style="font-size:18px;">package com.melody.httpclient;import java.io.IOException;import java.io.InputStream;import java.io.UnsupportedEncodingException;import java.net.URLEncoder;import java.util.ArrayList;import java.util.List;import org.apache.http.HttpEntity;import org.apache.http.HttpResponse;import org.apache.http.NameValuePair;import org.apache.http.StatusLine;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 com.melody.html.tool.Tools;import android.app.Activity;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.view.View;import android.widget.EditText;import android.widget.Toast;public class MainActivity extends Activity {Handler handler = new Handler(){public void handleMessage(android.os.Message msg) {Toast.makeText(MainActivity.this, (String) msg.obj, 0).show();};};protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);}//get提交public void onclick(View v){//获取用户输入的用户名和密码EditText et_name = (EditText) findViewById(R.id.et_name);EditText et_pass = (EditText) findViewById(R.id.et_pass);String name = et_name.getText().toString().trim();String pass = et_pass.getText().toString().trim();//String path = "http://192.168.119.69:8080/web/Login";final String path = "http://192.168.1.106:8080/web/servlet/Login?name=" + URLEncoder.encode(name)+"&pass=" + pass;Thread t = new Thread(){public void run() {//使用HTTPclient框架提交//1.创建client对象  客户端对象HttpClient client = new DefaultHttpClient();//2.创建get请求对象HttpGet get = new HttpGet(path);//3.使用客户端发送get请求try {HttpResponse response =client.execute(get);//获取状态行  请求的所有状态都在这里StatusLine line =response.getStatusLine();//获取状态吗int code = line.getStatusCode();//判断是否成功if(code == 200){//获取实体,流包含在里面HttpEntity entity =response.getEntity();//通过实体获取输入流InputStream is = entity.getContent();//使用自己写的工具栏获取流中文本信息String text = Tools.getTextFromStrem(is);//发送消息,刷新UIMessage msg = handler.obtainMessage();msg.obj = text;handler.sendMessage(msg);}} catch (Exception e) {e.printStackTrace();}}};t.start();}//post提交public void onclick_post(View v){//获取用户输入的用户名和密码EditText et_name = (EditText) findViewById(R.id.et_name);EditText et_pass = (EditText) findViewById(R.id.et_pass);final String name = et_name.getText().toString().trim();final String pass = et_pass.getText().toString().trim();final String path = "http://192.168.1.106:8080/web/servlet/Login";Thread t = new Thread(){public void run() {//1.创建client对象  客户端对象HttpClient client = new DefaultHttpClient();//2.创建get请求对象HttpPost post = new HttpPost(path);//5.这个集合中 就封装我们要传递的数据List<NameValuePair> parameters = new ArrayList<NameValuePair>();// 6.BasicNameValuePair 是NameValuePair 接口的实现类// arg0:表单名字,arg1:表单值BasicNameValuePair bnvp1 = new BasicNameValuePair("name", name);BasicNameValuePair bnvp2 = new BasicNameValuePair("pass", pass);// 7.把BasicNameValuePair对象放入集合parameters.add(bnvp1);parameters.add(bnvp2);//4.创建实体对象UrlEncodedFormEntity entity = null;try {//把集合对象封装到实体中  arg0:封装要提交的数据  arg1:编码entity = new UrlEncodedFormEntity(parameters, "utf-8");} catch (Exception e1) {e1.printStackTrace();}//3.设置实体,把实体对象封装至post中,在client.execute();执行之前post.setEntity(entity);//8.使用客户端发送post请求try {HttpResponse response = client.execute(post);//判断是否成功if(response.getStatusLine().getStatusCode() == 200){InputStream is =response.getEntity().getContent();//使用自己写的工具栏获取流中文本信息String text = Tools.getTextFromStrem(is);//发送消息,刷新UIMessage msg = handler.obtainMessage();msg.obj = text;handler.sendMessage(msg);}} catch (Exception e) {e.printStackTrace();}}};t.start();}}</span>


0 0