Android手机开发:网络连接-打开Url下载信息

21 篇文章 0 订阅

1. 简单版本

	/**
	 * 根据URL下载文件,前提是这个文件当中的内容是文本,函数的返回值就是文件当中的内容 1.创建一个URL对象
	 * 2.通过URL对象,创建一个HttpURLConnection对象 3.得到InputStram 4.从InputStream当中读取数据
	 * 
	 * @param urlStr
	 * @return
	 */
	public String getTextFromUrl(String urlStr) {
		StringBuffer sb = new StringBuffer();
		String line = null;
		BufferedReader buffer = null;
		try {
			// 创建一个URL对象
			url = new URL(urlStr);
			// 创建一个Http连接
			HttpURLConnection urlConn = (HttpURLConnection) url
					.openConnection();
			// 使用IO流读取数据
			buffer = new BufferedReader(new InputStreamReader(
					urlConn.getInputStream()));
			while ((line = buffer.readLine()) != null) {
				sb.append(line);
			}
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			try {
				buffer.close();
			} catch (Exception e) {
				e.printStackTrace();
			}
		}
		return sb.toString();
	}

2. 发送http信息,并信息进行编码

	//发送http信息,并信息进行编码
	public String SendDataPost(String url, String post)
    {
		// 判断网络链接是否正常
		if (isNetworkAvailable(fromcon)) {
			try
			{
				String	mString = new String(post.getBytes(), "UTF-8");
				URL iurl = new URL(url);//直接提交地址,不要带参数        
				HttpURLConnection objConn = (HttpURLConnection)iurl.openConnection();
				//objConn.setRequestProperty("Cookie",HttpTools.PublishCookies());
           
				objConn.setDoOutput(true);
				objConn.setDoInput(true);
				objConn.setRequestProperty("Content-type","application/x-www-form-urlencoded");
				objConn.setRequestMethod("POST");
				objConn.setRequestProperty("Content-Length",String.valueOf(mString.toCharArray().length));
				objConn.setConnectTimeout(30000);
	            objConn.setReadTimeout(30000);
	            objConn.connect();
				
	            OutputStream  objSM = objConn.getOutputStream();
	            OutputStreamWriter objSW = new OutputStreamWriter(objSM);
	            BufferedWriter  out = new BufferedWriter(objSW);
                       
	            out.write(mString.toCharArray(),0,mString.toCharArray().length);
	            out.flush();
	            out.close();
            
	            InputStream objSMP = objConn.getInputStream();
	            InputStreamReader objSRP = new InputStreamReader(objSMP, "utf-8");
	            BufferedReader in = new BufferedReader(objSRP);  
	            String line = null;  
	            StringBuilder sb = new StringBuilder();  
	            while ((line = in.readLine()) != null) {  
	              sb.append(line);  
	            }  
	            in.close(); 
	            String resp = sb.toString();
	            objSMP.close();
	            objConn.disconnect();
	            return resp;
			}catch (Exception ex) {
	       	 	Log.i("CCCC", ex.toString());
	            return "";
	        }
		}else{
		
			Intent intent0 = new Intent(fromcon,
				LoginActivity.class);
			intent0.putExtra("msg",
				"您当前网络连接已禁用,请重新设置!");
			fromcon.startActivity(intent0);
			return "";
		}
    }
	
	// 判断网络是否正常
	public static boolean isNetworkAvailable(Context context) {
		ConnectivityManager connectivity = (ConnectivityManager) context
				.getSystemService(Context.CONNECTIVITY_SERVICE);
		if (connectivity == null) {
			
			return false;
		} else {
			NetworkInfo info = connectivity.getActiveNetworkInfo();
			if (info == null) {
				
				return false;
			} else {
				if (info.isAvailable()) {					
					return true;
				}
			}
		}
		
		return false;
	}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值