社区
Android
帖子详情
httpclient和HttpURLConnection访问网络的问题
west_gold
2015-03-29 01:40:45
碰到个怪问题,先是通过wifi使用HttpURLConnection访问路由器切换外网ip,切换ip完以后,第一次访问外网的时候,android4.0 4.1版本都会卡住一分半到2分钟(实际上用手机是可以上网的),但是android4.4就没这个问题。反复测试以后,有的情况下换完ip又可以马上访问网络,实在是找不出是什么原因。有同学碰到过类似问题吗?》
...全文
159
4
打赏
收藏
httpclient和HttpURLConnection访问网络的问题
碰到个怪问题,先是通过wifi使用HttpURLConnection访问路由器切换外网ip,切换ip完以后,第一次访问外网的时候,android4.0 4.1版本都会卡住一分半到2分钟(实际上用手机是可以上网的),但是android4.4就没这个问题。反复测试以后,有的情况下换完ip又可以马上访问网络,实在是找不出是什么原因。有同学碰到过类似问题吗?》
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
west_gold
2015-03-30
打赏
举报
回复
引用 3 楼 guwei4037 的回复:
是手机的问题吧,不应该是android的bug。
用了三个手机测试,一个4.0 一个4.1 一个4.4,就4.4的没问题
west_gold
2015-03-29
打赏
举报
回复
有人知道是怎么回事吗?
guwei4037
2015-03-29
打赏
举报
回复
是手机的问题吧,不应该是android的bug。
west_gold
2015-03-29
打赏
举报
回复
Android中
HttpURLConnection
与
HttpClient
的使用与封装
1.写在前面 大部分andriod应用需要与服务器进行数据交互,HTTP、FTP、SMTP或者是直接基于SOCKET编程都可以进行数据交互,但是HTTP必然是使用最广泛的协议。 本文并不针对HTTP协议的具体内容,仅探讨android开发中使用HTTP协议
访问
网络
的两种方式——
HttpURLConnection
和
HttpClient
因为需要
访问
网络
,需在AndroidManifest.xml中添加如下权限
2.HttpURLConnect
用
HttpClient
来模拟浏览器GET POST
http://www.xd-tech.com.cn/blog/article.asp?id=34一般的情况下我们都是使用IE或者Navigator浏览器来
访问
一个WEB服务器,用来浏览页面查看信息或者提交一些数据等等。所
访问
的这些页面有的仅仅是一些普通的页面,有的需要用户登录后方可使用,或者需要认证以及是一些通过加密方式传输,例如HTTPS。目前我们使用的浏览器处理这些情况都不会构成
问题
。不过你可能在某些时候需要通过程序来
访问
这样的一些页面,比如从别人的网页中“偷”一些数据;利用某些站点提供的页面来完成某种功能,例如说我们想知道某个手机号码的归属地而我们自己又没有这样的数据,因此只好借助其他公司已有的网站来完成这个功能,这个时候我们需要向网页提交手机号码并从返回的页面中解析出我们想要的数据来。如果对方仅仅是一个很简单的页面,那我们的程序会很简单,本文也就没有必要大张旗鼓的在这里浪费口舌。但是考虑到一些服务授权的
问题
,很多公司提供的页面往往并不是可以通过一个简单的URL就可以
访问
的,而必须经过注册然后登录后方可使用提供服务的页面,这个时候就涉及到COOKIE
问题
的处理。我们知道目前流行的***页技术例如ASP、JSP无不是通过COOKIE来处理会话信息的。为了使我们的程序能使用别人所提供的服务页面,就要求程序首先登录后再
访问
服务页面,这过程就需要自行处理cookie,想想当你用java.net.
HttpURLConnection
来完成这些功能时是多么恐怖的事情啊!况且这仅仅是我们所说的顽固的WEB服务器中的一个很常见的“顽固”!再有如通过HTTP来上传文件呢?不需要头疼,这些
问题
有了“它”就很容易解决了! 我们不可能列举所有可能的顽固,我们会针对几种最常见的
问题
进行处理。当然了,正如前面说到的,如果我们自己使用java.net.
HttpURLConnection
来搞定这些
问题
是很恐怖的事情,因此在开始之前我们先要介绍一下一个开放源码的项目,这个项目就是Apache开源组织中的
httpclient
,它隶属于Jakarta的commons项目,目前的版本是2.0RC2。commons下本来已经有一个net的子项目,但是又把
httpclient
单独提出来,可见http服务器的
访问
绝非易事。Commons-
httpclient
项目就是专门设计来简化HTTP客户端与服务器进行各种通讯编程。通过它可以让原来很头疼的事情现在轻松的解决,例如你不再管是HTTP或者HTTPS的通讯方式,告诉它你想使用HTTPS方式,剩下的事情交给
httpclient
替你完成。本文会针对我们在编写HTTP客户端程序时经常碰到的几个
问题
进行分别介绍如何使用
httpclient
来解决它们,为了让读者更快的熟悉这个项目我们最开始先给出一个简单的例子来读取一个网页的内容,然后循序渐进解决掉前进中的所形侍狻?/font>
Android 中
HttpURLConnection
与
HttpClient
使用的简单实例
1:HttpHelper.java 代码如下:public class HttpHelper { //1:标准的Java接口 public static String getStringFromNet1(String param){ String result=””; try{ URL url=new URL(param);
HttpURLConnection
conn=(
HttpURLConnection
)url.openConnection(); if(conn.getRespons
Android
网络
框架(Retrofit+Okhttp+Rxjava)、MVP模式(Dagger)
大多数应用程序基本都需要连接
网络
,发送一些数据给服务端,或者从服务端获取一些数据。通常在 android 中进行
网络
连接一般使用 Scoket 和HTTP,HTTP 请求方式比 Scoket 多得多。HTTP 请求一般采用原生的
HttpClient
和
HttpUrlConnection
的两种
网络
访问
方式。可是在 Android 5.0 的时候 Google 就不推荐使用
HttpClient
了,到了 Android 6.0 (api 23) SDK,不再提供 org.apache.http.* (只保留几个类), 因此,设置 android SDK 的编译版本为23时,且使用了
httpClient
相关类的库项目:如 android-async-http 等等,会出现有一些类找不到的错误。下面我将使Retrofit+Okhttp+Rxjava的方式为大家简述一下
网络
框架的搭建。
使用
HttpClient
下载图片
HttpURLConnection
与
HttpClient
的区别:
HttpClient
是个很不错的开源框架(org.appache.http),封装了
访问
http的请求头,参数,内容体,响应等等,使用起来更方面更强大。
HttpURLConnection
是java的标准类,可以实现简单的基于URL请求、响应功能,什么都没封装,用起来太原始,比如重
访问
的自定义,以及一些高级功能等。
Android
80,351
社区成员
91,288
社区内容
发帖
与我相关
我的任务
Android
移动平台 Android
复制链接
扫一扫
分享
社区描述
移动平台 Android
android
android-studio
androidx
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章