• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >Android > Android网络编程使用HttpClient访问web站点

Android网络编程使用HttpClient访问web站点

作者:网友 字体:[增加 减小] 来源:互联网 时间:2017-05-26

网友通过本文主要向大家介绍了android httpclient,android中httpclient,httpclient web api,httpclient接口测试,httpclient等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

Android网络编程使用HttpClient访问web站点


HttpClientDemo.java界面就是两个按钮和一个文本框

/*
 * 用HttpClientlai 来访问提交请求,接收响应
 * A,发送GET请求
 * 1,创建HttpClient对象;HttpClient httpclient=new DefaultHttpClient();
 * 2,发送GET请求,创建HttpGet对象:HttpGet httpget=new HttpGet("http://www.baidu.com");
 * 3,用HttpClient对象实行HttpGet对象会得到服务器响应对象HttpResponse的对象,响应就封装在HttpResponse中:
 *  HttpResponse httpresponse=httpclient.execute(httpget);
 * 4,从httpresponse响应中获得Http实例
		HttpEntity entity=httpresponse.getEntity(); 
 * */
public class HttpClientDemo extends Activity {
   TextView response;
   //声明HttpClient对象
   HttpClient httpclient;
   Handler handler=new Handler(){
	  public void handleMessage(Message msg){
		  if(msg.what==0x123){
			//  使用response显示服务器的响应
			  response.append(msg.obj.toString()+"\n");
		  }
	  }
   };
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_http_client);
        //1,创建DefaultHttpClient对象,接口回调HttpClient是个接口
        httpclient=new DefaultHttpClient();
        response=(TextView) findViewById(R.id.response);
    }
    /*
     * 向服务发送GET请求流程
     * 
     * */
    public void accessSecret(View v){
    	response.setText("");
    	//点击按钮,开启线程,在线程中发送Get请求
    	new Thread(){
    		public void run(){
    			//2,创建一个HttpGet对象
    			HttpGet httpget=new HttpGet("http://localhost:8080/foo/secret.jsp");//jsp部署在To吗cat服务器上
    			try {
    				    //3,用HttpClient对象实行HttpGet对象会得到服务器响应对象HttpResponse的对象,响应就封装在HttpResponse中
					    HttpResponse httpresponse=httpclient.execute(httpget);
					    //4,从httpresponse响应中获得Http实例
					    HttpEntity entity=httpresponse.getEntity();
					    if(entity!=null){
					    	//5,entity实例中获得内容,建立输入流,读取服务器内容
					    	BufferedReader br=new BufferedReader(new InputStreamReader(entity.getContent()));
					    	String line=null;
					    	while((line=br.readLine())!=null){//循环从输入流中读取内容
					    		Message msg=new Message();
					    		msg.what=0x123;
					    		msg.obj=line;
					    	    handler.sendMessage(msg);//发给UI线程更新UI组件
					    	}
					    }
					    
				} catch (ClientProtocolException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				} catch (IOException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
    			
    			
    		}
    	}.start();
    }
    /*
     * 发送Post请求流程
     * 
     * 
     * */
   public void showLogin(View v){
	   final View loginDialog=getLayoutInflater().inflate(R.layout.login, null);
	   new AlertDialog.Builder(HttpClientDemo.this)
	       .setTitle("登录系统")
	       .setView(loginDialog)
	       .setPositiveButton("确定", new DialogInterface.OnClickListener(){

			@Override
			public void onClick(DialogInterface dialog, int which) {
				// 获取对话框的用户名和密码
				
				final String name=((EditText)loginDialog.findViewById(R.id.name)).getText().toString();
				final String pass=((EditText)loginDialog.findViewById(R.id.pass)).getText().toString();
				//点击确定,开启线程,在线程中发送Post请求
				new Thread(){
					public void run(){													
							try {
								//2,创建HttpPost对象
								HttpPost httppost=new HttpPost("http://localhost:8080/foo/login.jsp");//jsp部署在To吗cat服务器上
								//3,对传递的参数进行封装,NameValuePair是简单名称值对节点类型
								List params=new ArrayList();
								params.add(new BasicNameValuePair("name",name));//添加参数
								params.add(new BasicNameValuePair("pass",pass));
								//3,设置编码
								httppost.setEntity(new UrlEncodedFormEntity(params,HTTP.UTF_8));
								//4,HttpClient对象执行HttpPost请求,获得相应
								HttpResponse httpresponse=httpclient.execute(httppost);
								//5,如果状态码是200就表示服务器成功相应
								if(httpresponse.getStatusLine().getStatusCode()==200){
									//200:响应成功,301/302:重定向,404:not found未找到资源 ,501服务器遇到错误,使其无法对请求提供服务
									String msg = EntityUtils.toString(httpresponse.getEntity());								
									Looper.prepare();
									//提示登录成功
									Toast.makeText(HttpClientDemo.this, msg, Toast.LENGTH_LONG).show();
									Looper.loop();
								}
							} catch (ParseException e) {
								// TODO Auto-generated catch block
								e.printStackTrace();
							} catch (IOException e) {
								// TODO Auto-generated catch block
								e.printStackTrace();
							}																			
					}
				}.start();
				
			}
	       }).setNegativeButton("取消", null).show();

    
}

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • Android网络编程(二)HttpClient与HttpURLConnection
  • Android网络编程使用HttpClient访问web站点

相关文章

  • 2017-05-26菜鸟新闻1--自定义VideoView实现欢迎页,1--videoview
  • 2017-05-26android红米等关于读取本地文件夹图片获取路径的问题的解决,
  • 2017-05-222.3.8 SeekBar(拖动条)
  • 2017-05-26集成websocket即时通讯 java聊天源码 代码下载 java后台框架源码 websocket源码 IM,websocket即时通讯
  • 2017-05-26「视频直播技术详解」系列之六:现代播放器原理,
  • 2017-05-26Kerberos简介
  • 2017-05-26Android之数据存储的五种方法,android五种
  • 2017-05-26iTween基础之功能简介,itween功能简介
  • 2017-05-26Android消息机制之Handler,androidhandler
  • 2017-05-26RelativeLayout的位置属性总结,relativelayout总结

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • Android 手机卫士1--实现splash页面,androidsplash
    • Android--判断是否连接成功了指定wifi,android--wifi
    • Android系统input设备的插拔和事件监听
    • Android XML中引用自定义内部类view的四个why,androidxml
    • Android群英传笔记系列二view的绘制(一),android群英
    • Docker+Redis3集群环境搭建
    • getDrawingCache()和Android中的截图方法简介
    • ArcGIS Android工程迁移到其他电脑不能打开的问题,arcgisandroid
    • ListView和Adapter的配合使用以及Adapter的重写,listviewadapter
    • Android5.0开发范例大全 读书笔记(五),android5.0范例

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有