zoukankan      html  css  js  c++  java
  • android网络通信(1)

    使用HttpURLConnecation 进行通信

    1、GET 请求:

    new Thread()
    		{
    			public void run() 
    			{
    				try
    				{			
    						//1. 连接网络  创建URL对象
    						URL url = new URL("http://www.baidu.com");
    						//2.打开连接  并获得HttpURLConnection对象
    						HttpURLConnection huc = (HttpURLConnection) url.openConnection();
    						//3. 读取该对象资源的数据 
    						huc.setDoInput(true);// 设置读取数据
    						huc.setRequestMethod("GET");//设置请求模式  GET
    						huc.connect();//建立链接成功
    						//获得读取流
    						InputStream is = huc.getInputStream();			
    						BufferedReader br = new BufferedReader(new InputStreamReader(is));
    						//4.获取读取到的字符数据  创建StringBuilder 对象
    						StringBuilder sb = new StringBuilder();
    						//5.读取数据
    						String line = "";
    						while((line=br.readLine())!=null)
    						{
    							sb.append(line+"
    "); //收集读取到的数据
    						}
    						//获得Message对象
    						Message msg = Message.obtain();
    						msg.obj = sb;
    						msg.what = 1;
    						hd.sendMessage(msg);
    
    				} catch (Exception e)
    				{
    					// TODO Auto-generated catch block
    					e.printStackTrace();
    				}
    			}
    			
    
    		}.start();
    		
    

     2、POST请求:

    new Thread()
    		{
    			public void run()
    			{
    				try
    				{
    					// 1.获取URL对象
    					URL url = new URL("http://wwwtest.rupeng.cn:8888/QueryAvatarInfo.ashx");
    					// 2.获取HttpURLConnection 对象
    					HttpURLConnection huc = (HttpURLConnection) url.openConnection();
    					//3.设置 读入与写出
    					huc.setDoInput(true); 
    					huc.setDoOutput(true);
    					//4.设置 请求模式
    					huc.setRequestMethod("POST");
    					//5.获取写入流
    					OutputStream os = huc.getOutputStream();
    					os.write(("action=GetAllNames").getBytes());
    					os.flush();
    					// 6.链接
    					huc.connect();
    					//7.读取返回数据
    					InputStream is = huc.getInputStream();
    					BufferedReader br = new BufferedReader(new InputStreamReader(is));
    					StringBuilder sb = new StringBuilder();
    					String line="";
    					while((line=br.readLine())!=null)
    					{
    						sb.append(line+"
    ");						
    					}
    					
    					Message msg = Message.obtain();
    					msg.obj = sb;
    					msg.what = 1;
    					// 发送数据
    					hd.sendMessage(msg);
    					
    					// 关闭资源
    					is.close();
    					br.close();
    					os.close();
    				
    				} catch (Exception e)
    				{
    					// TODO Auto-generated catch block
    					e.printStackTrace();
    				}
    				
    			};
    			
    		}.start();
    				
    

    使用HttpClient 进行通信

    GET

    new Thread()
    		{
    			// 耗时操作
    			public void run()
    			{
    				//1、创建HttpClient对象  
    				HttpClient hc = new DefaultHttpClient();
    				//2.设置请求模式
    				HttpGet hg = new HttpGet("http://www.baidu.com/");
    
    				try
    				{
    					//3.客户端执行 GET请求 获得应答对象
    					HttpResponse hr = hc.execute(hg);
    					//4.通过应答对象获得 实体数据对象
    					HttpEntity he = hr.getEntity();
    					//5.通过EntityUtils工具类解析数据
    					String data = EntityUtils.toString(he,"UTF-8");
    
    					// 通过Handler发送数据
    					Message msg = Message.obtain();
    					msg.obj = data;
    					msg.what = 1;					
    					hd.sendMessage(msg);
    
    
    				} catch (ClientProtocolException e)
    				{
    					// TODO Auto-generated catch block
    					e.printStackTrace();
    				} catch (Exception e)
    				{
    					// TODO Auto-generated catch block
    					e.printStackTrace();
    				}
    
    			}
    
    		}.start();
    

      

  • 相关阅读:
    使用阿里云ECS安装HDFS的小问题
    退役回忆录嘤嘤嘤
    2018 ICPC北京 H ac自动机
    Educational Codeforces Round 54 (Rated for Div. 2) DE
    sa learning
    网络流learning
    Python模块logging
    Python模块unittest
    Linux /dev/shm
    Shell 字符串操作
  • 原文地址:https://www.cnblogs.com/pbq-dream/p/5370480.html
Copyright © 2011-2022 走看看