URLConnection 和HttpURLConnection
2016-07-14 10:42
691 查看
转载自:http://blog.csdn.net/caesardadi/article/details/8622266
URLConnection和HttpURLConnection使用的都是Java.net中的类,属于标准的java接口。
HttpURLConnection继承自URLConnection,差别在与HttpURLConnection仅仅针对Http连接。
基本步骤:
1) 创建 URL 以及 URLConnection / HttpURLConnection 对象
2) 设置连接参数
3) 连接到服务器
4) 向服务器写数据
5)从服务器读取数据
[java] view
plain copy
public void urlConnection()
{
String urltext = "";
try {
// 方法一:
URL url = new URL(urltext);
URLConnection conn = url.openConnection();//取得一个新的链接对指定的URL
conn.connect();//本方法不会自动重连
InputStream is = conn.getInputStream();
is.close();//关闭InputStream
// 方法二:
URL url2 = new URL(urltext);
InputStream is2 = url2.openStream();
is2.close();//关闭InputStream
//URL对象也提供取得InputStream的方法。URL.openStream()会打开自动链接,所以不需要运行openConnection
//方法三:本方法同一,但是openConnection返回值直接转为HttpsURLConnection,
//这样可以使用一些Http连接特有的方法,如setRequestMethod
URL url3 = new URL(urltext);
HttpsURLConnection conn3 =(HttpsURLConnection)url.openConnection();
conn3.setRequestMethod("POST");
//允许Input、Output,不使用Cache
conn3.setDoInput(true);
conn3.setDoOutput(true);
conn3.setUseCaches(false);
/*
* setRequestProperty
*/
conn3.setRequestProperty("Connection", "Keep-Alive");
conn3.setRequestProperty("Charset", "UTF-8");
conn3.setRequestProperty("Content-type", "multipart/form-data;boundary=*****");
//在与服务器连接之前,设置一些网络参数
conn3.setConnectTimeout(10000);
conn3.connect();
// 与服务器交互:向服务器端写数据,这里可以上传文件等多个操作
OutputStream outStream = conn3.getOutputStream();
ObjectOutputStream objOutput = new ObjectOutputStream(outStream);
objOutput.writeObject(new String("this is a string…"));
objOutput.flush();
// 处理数据, 取得响应内容
InputStream is3 = conn.getInputStream();
is3.close();//关闭InputStream
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
URLConnection和HttpURLConnection使用的都是Java.net中的类,属于标准的java接口。
HttpURLConnection继承自URLConnection,差别在与HttpURLConnection仅仅针对Http连接。
基本步骤:
1) 创建 URL 以及 URLConnection / HttpURLConnection 对象
2) 设置连接参数
3) 连接到服务器
4) 向服务器写数据
5)从服务器读取数据
[java] view
plain copy
public void urlConnection()
{
String urltext = "";
try {
// 方法一:
URL url = new URL(urltext);
URLConnection conn = url.openConnection();//取得一个新的链接对指定的URL
conn.connect();//本方法不会自动重连
InputStream is = conn.getInputStream();
is.close();//关闭InputStream
// 方法二:
URL url2 = new URL(urltext);
InputStream is2 = url2.openStream();
is2.close();//关闭InputStream
//URL对象也提供取得InputStream的方法。URL.openStream()会打开自动链接,所以不需要运行openConnection
//方法三:本方法同一,但是openConnection返回值直接转为HttpsURLConnection,
//这样可以使用一些Http连接特有的方法,如setRequestMethod
URL url3 = new URL(urltext);
HttpsURLConnection conn3 =(HttpsURLConnection)url.openConnection();
conn3.setRequestMethod("POST");
//允许Input、Output,不使用Cache
conn3.setDoInput(true);
conn3.setDoOutput(true);
conn3.setUseCaches(false);
/*
* setRequestProperty
*/
conn3.setRequestProperty("Connection", "Keep-Alive");
conn3.setRequestProperty("Charset", "UTF-8");
conn3.setRequestProperty("Content-type", "multipart/form-data;boundary=*****");
//在与服务器连接之前,设置一些网络参数
conn3.setConnectTimeout(10000);
conn3.connect();
// 与服务器交互:向服务器端写数据,这里可以上传文件等多个操作
OutputStream outStream = conn3.getOutputStream();
ObjectOutputStream objOutput = new ObjectOutputStream(outStream);
objOutput.writeObject(new String("this is a string…"));
objOutput.flush();
// 处理数据, 取得响应内容
InputStream is3 = conn.getInputStream();
is3.close();//关闭InputStream
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
相关文章推荐
- Http协议的Delete
- 自研究网络通信库
- Android网络请求框架NoHttp简介
- Android网络请求框架NoHttp简介
- weblogic部署异常: cvc-enumeration-valid: string value '3.0' is not a valid enumeration value for web-app-versionType in namespace http://java.sun.com/xml/ns/javaee:<null>
- 【unix网络编程第三版】阅读笔记(五):I/O复用:select和poll函数
- 【unix网络编程第三版】阅读笔记(五):I/O复用:select和poll函数
- [置顶] Universal-Image-Loader,android-Volley,Picasso、Fresco和Glide五大Android开源组件加载网络图片的优缺点比较
- curl命令
- xmlns:android="http://schemas.android.com/apk/res/android"
- http://love3400wind.blog.163.com/blog/static/7963080120132794359703/
- Android最流行的网络框架
- 解决:Cannot get http://gerrit.googlesource.com/git-repo/clone.bundle
- 使用NPM命令安装库时,遇到 npm ERR! fetch failed https://registry.npmjs.org/xxx的问题
- 图解jmeter压测http接口
- 常见的HTTP错误码的具体含义
- 安卓 java有效判断Socket连接断开和安卓TCP测试APP(客户+服务端一体)
- android——判断当前网络是否可用
- iOS开发 - 第04篇 - 网络 - 05 - ASI & 网页开发
- What is the difference between HTTP_CLIENT_IP and HTTP_X_FORWARDED_FOR