Java中可以使用HttpURLConnection来请求WEB资源。
HttpURLConnection对象不能直接构造,需要通过URL.openConnection()来获得HttpURLConnection对象,示例代码如下:
String szUrl = "http://www.ee2ee.com/";
URL url = new URL(szUrl);
HttpURLConnection urlCon = (HttpURLConnection)url.openConnection();
HttpURLConnection是基于HTTP协议的,其底层通过socket通信实现。如果不设置超时(timeout),在网络异常的情况下,可能会导致程序僵死而不继续往下执行。可以通过以下两个语句来设置相应的超时:
例如【已经过时】:
System.setProperty("sun.net.client.defaultConnectTimeout", "30000");
System.setProperty("sun.net.client.defaultReadTimeout", "30000");
JDK 1.5以前的版本,只能通过设置这两个系统属性来控制网络超时。
在1.5中,还可以使用HttpURLConnection的父类URLConnection的以下两个方法:
setConnectTimeout:设置连接主机超时(单位:毫秒)
setReadTimeout:设置从主机读取数据超时(单位:毫秒)
例如:
HttpURLConnection urlCon = (HttpURLConnection)url.openConnection();
urlCon.setConnectTimeout(30000);
urlCon.setReadTimeout(30000);
在1.5中,还可以使用HttpURLConnection的父类URLConnection的以下两个方法:
setConnectTimeout:设置连接主机超时(单位:毫秒)
setReadTimeout:设置从主机读取数据超时(单位:毫秒)
例如:
HttpURLConnection urlCon = (HttpURLConnection)url.openConnection();
urlCon.setConnectTimeout(30000);
urlCon.setReadTimeout(30000);
需要注意的是,笔者在JDK1.4.2环境下,发现在设置了defaultReadTimeout的情况下,如果发生网络超时,HttpURLConnection会自动重新提交一次请求,出现一次请求调用,请求服务器两次的问题(Trouble)。我认为这是 JDK1.4.2的一个bug。在JDK1.5.0中,此问题已得到解决,不存在自动重发现象。
分享到:
相关推荐
Java建立HttpConnection连接的例子,支持在手机端运行的的Java小程序,通过建立HttpConnection连接,获取到文本信息并显示在屏幕上,相关的测试代码如下: ContentConnection connection = (ContentConnection) ...
android中利用httpconnection上传文件。可以选择要上传文件的路径,上传网址
java 基于https请求httpconnection, 在代码中加入tls, tls1.2等..
handy包 http://blog.csdn.net/facepp/article/details/7439840
Android用HttpConnection访问网络时实现类似浏览器自动保持上一次会话的功能
NULL 博文链接:https://wangxc.iteye.com/blog/591160
细心的开发者可能会发现,在用浏览器访问http时一般都会自动保持同一个会话,而用代码访问http连接时则每一次访问都会新建一个会话,那么我趁着这几天休假就把之前从网上资料中整理出的一个demo分享出来,实现安卓...
建立HTTP连接请求
代码包含了httpurlconnection基本操作,一些正常的操作。
Android文件断点下载,使用HttpConnection
at com.android.okhttp.internal.http.HttpConnection.readResponse(HttpConnection.java:191) at com.android.okhttp.internal.http.HttpTransport.readResponseHeaders(HttpTransport.java:80) at ...
本例演示最简单的android客户端和服务器端通信,客户端使用android4.0以上版本,服务器端为dynamic web project工程,使用时将client代码中的ip地址改为自己电脑的ipv4地址,同时保证手机和电脑处于同一网络下(内网...
例1: (HttpConnection) Connector.open("http://www.testserver.com"); 以上代码会自动将BlackBerry MDS Services 作为它的默认连接路径。实际开发中, 如果要确保应用程序使用uses BlackBerry MDS Services 作为它...
... 导入相关库:首先需要导入http.server模块。 ... ...可以从请求中获取参数、头部...创建HTTP连接:使用http.client.HTTPConnection类创建一个HTTP连接对象,指定目标主机和端口。 发送HTTP请求:使用HTTP连接对象的req
UploadFileUtil工具类可以针对各种文件(图片、声音)进行httpConnection 上传
# struts-scan 快速检测struts命令执行漏洞,可批量。 # 运行环境 MAC/Linux下的Python2 # 支持对以下版本的检测 ...此工具仅限于漏洞验证,如若使用者引起相关的法律责任请自负,开发者不承担连带责任。
本示例主要用于HttpConnection的基础学习,示例中结合了基础其他的知识一起。
①使用简单工厂模式设计一个...②在某网络管理软件中,需要为不同的网络协议提供不同的连接类,例如针对POP3协议的连接类POP3Connection、针对IMAP协议的连接类 IMAPConnection、针对HTTP协议的连接类 HTTPConnection等。
利用HTTPConnection类设置文件上传,这里没有搭建服务器端代码,因为太简单了...
Httpconnection ——本人常用 OKHTTP——看见过(需要在依赖中引入包) HttpClient——过气的方法(弃用) HTTPCONNECTION 由于网络连接是耗时操作不能在UI线程操作,一般通过Handler获取子线程中获取的数据 ...