如何实现网络请求?
博客专区 > 枫TI 的博客 > 博客详情
如何实现网络请求?
枫TI 发表于6个月前
如何实现网络请求?
  • 发表于 6个月前
  • 阅读 2
  • 收藏 0
  • 点赞 0
  • 评论 0

腾讯云 十分钟定制你的第一个小程序>>>   

摘要: 使用的第三方的框架,还是原生的java或者android SDK提供的API。

做Android有些年头了,第一份工作是在一家手机电视-Dopool公司工作的。那时主流SDK还是9(现在已经25了)。主要工作内容,界面绘制,熟练使用ListView、GridView等一系列常用的的系统控件,当然自己也自定义过View--弧形进度条。网络接口已经由公司牛人封装好了,负责调用接口解析数据就行,数据格式还是xml,现在Json大行其道了。专注UI,无暇网络。

相比第一份工作干了一年,第二份工作显得稍微长了一些,四年时间用心做一款产品。相比上一家公司的工作,最大的不同是,创业公司,一行代码都没有,所有接口自己写。

算是独立开发APP的开始,UI方面是没什么大问题的,网络模块没接触过,就从API开始吧。

Httpclient,现在已被Android启用。有些公司拿这个当作一个考查点,考查面试者,感觉很无聊,中国式的教育。由于Httpclient过于庞大,使得很难在不破坏兼容性的基础上进行修改。 Android开发团队也不积极致力于的 Apache HTTP Client的开发工作。

既然Httpclient已经被启用了,那就找替代者吧,官方推荐HttpURLConnection API简便而且包小,对安卓很合适。HttpURLConnection 对于提高请求速度和节省电池有帮助,同时谷歌也愿意在这方面花时间研究去更进一步的提高性能。

项目中的网络请求核心代码如下:

URL url = new URL(uri);

// 网络请求,这是一个阻塞方法

HttpsURLConnection https = (HttpsURLConnection)url.openConnection();

HttpURLConnection  conn = https;

 

URL url = new URL(uri);

// 网络请求,这是一个阻塞方法

HttpURLConnection conn = (HttpURLConnection)url.openConnection();

在此基础上添加请求Header及元数据就行了。

 

下载文件代码一:

HttpGet httpRequest = new HttpGet(downloadUrl);

HttpParams params = new BasicHttpParams();

ClientConnectionManager ccm ;

HttpClient sHttpClient = new DefaultHttpClient(ccm, params);

// 网络请求,这是一个阻塞方法

HttpResponse httpResponse = mHttpClient.execute(httpRequest);

String contentType = httpResponse.getEntity().getContentType().getValue();

int httpReturnStatusCode = httpResponse.getStatusLine().getStatusCode();

if (200 == httpReturnStatusCode && contentType.contains("application/x-download")) {

    InputStream input = httpResponse.getEntity().getContent();

}

下载文件代码二:

URL url = new URL(url);
HttpURLConnection httpConnection = (HttpURLConnection) url.openConnection();
httpConnection.setRequestProperty("User-Agent", "NetFox");
httpConnection.setReadTimeout(60000);

//支持断点下载

httpConnection.setRequestProperty("RANGE", "bytes=" + 已下载文件的大小  + "-");

// 网络请求,这是一个阻塞方法

InputStream input = httpConnection.getInputStream();

 

 

 

未完结...

 

 

 

 

标签: android 网络请求
共有 人打赏支持
粉丝 11
博文 76
码字总数 41485
作品 2
×
枫TI
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: