关闭

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

标签: url网络android手机stringexception
13106人阅读 评论(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;
	}


0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

安卓自动更新功能实现+安卓调用默认浏览器打开指定URL

import android.app.Activity; import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.view.View; import android...
  • lkjasdgfh
  • lkjasdgfh
  • 2015-06-23 00:38
  • 1536

打开URL启动android默认浏览器,启动指定浏览器

原文出自:http://blog.csdn.net/u013812046/article/details/39226515 一、启动android默认浏览器   Intent intent = new Intent();           intent...
  • LGGisKing
  • LGGisKing
  • 2015-05-07 09:27
  • 4020

Android 网络:使用URL访问网络资源,ImageView,下载到本地

简介: 访问一个网络上的图片,设置在ImageView上显示,并下载到本地 范例效果: 范例代码: acitivity_main.xml: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/a...
  • u014136472
  • u014136472
  • 2015-08-10 10:38
  • 1100

打开URL启动android默认浏览器,启动指定浏览器

一、启动android默认浏览器   Intent intent = new Intent();           intent.setAction("android.intent.action.VIEW");   ...
  • u013812046
  • u013812046
  • 2014-09-12 10:16
  • 3943

Android浏览器打开本地app前端同学的两种配置方式Url scheme和Android intent

首先说一下,在我和前端同学调试时,使用第一种方式配置时,不能够启动本地app,第二种方式能够启动app。可能是手机不支持第一种方式启动,具体原因没找到。这部分是Android小伙伴要做的事情 ---------------------------- 唤醒APP首先两种方式都要在AndroidMa...
  • qq_23089525
  • qq_23089525
  • 2016-10-09 18:18
  • 4080

[Android]使用浏览器直接打开PDF和Office文档

Android原生系统中的自带浏览器和Chrome浏览器是不支持直接打开PDF的文档的,需要现下载到本地之后再使用Adobe Reader之类的PDF阅读器才能打开。微软Office中DOC和XLS之类的也是如此。不过用习惯了安装了ActiveX插件的IE的客户最近突发奇想,要求在新开发APP中可以...
  • yctccg
  • yctccg
  • 2016-08-16 10:43
  • 6039

Android实现通过浏览器点击链接打开本地应用(APP)并拿到浏览器传递的数据

jintian 为了实现这个功能可折腾了我好久,先上一份代码,经楼主验证是绝对可以用的而且也比较清晰的代码!(ps:还是先剧透下吧,第三方大部分浏览器无法成功。) 点击浏览器中的URL链接,启动特定的App。 首先做成HTML的页面,页面内容格式如下: a href="[sch...
  • jiangwei0910410003
  • jiangwei0910410003
  • 2014-04-17 16:15
  • 81617

android开发判断手机网络连接状态

android开发中经常会用到判断手机网络状态的功能,android系统本身会提供各种服务供我们来监测手机的系统状态,当某一种服务的状态的发生改变的时候也会发送一条默认的广播。那么我们就可以拿到系统所提供的服务,截取系统发送的广播来实时的判断当前手机系统的网络连接状态。     ...
  • hnzcdy
  • hnzcdy
  • 2016-04-07 10:24
  • 1956

安卓开发:使用手机拍照功能

概述 在安卓开发过程中,使用手机拍照功能的核心代码其实非常简单,仅仅只是一句呼唤系统Intent而已: Intent intent = new Intent("android.media.action.IMAGE_CAPTURE"); 要是软件开发真的这么简单就好了,而且核心代...
  • freezingxu
  • freezingxu
  • 2017-07-01 21:14
  • 440

Android 打开地图App 和 网页版地图

URI 拼写: public class StringUtil { /** * Check if the string is empty * * @param input string to be checked * @return true if...
  • QQ55214
  • QQ55214
  • 2016-08-13 12:03
  • 901
    个人资料
    • 访问:594031次
    • 积分:7640
    • 等级:
    • 排名:第3267名
    • 原创:190篇
    • 转载:6篇
    • 译文:0篇
    • 评论:99条
    博客专栏
    文章分类
    最新评论