`

HttpUrlConnection

阅读更多

利用HttpURLConnection对象,我们可以从网络中获取网页数据.
URL url = new URL("http://www.sohu.com");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setConnectTimeout(6* 1000);//设置连接超时
if (conn.getResponseCode() != 200) throw new RuntimeException("请求url失败");
InputStream is = conn.getInputStream();//得到网络返回的输入流
String result = readData(is, "GBK");
conn.disconnect();
System.out.println(result);
//第一个参数为输入流,第二个参数为字符集编码
public static String readData(InputStream inSream, String charsetName) throws Exception{
    ByteArrayOutputStream outStream = new ByteArrayOutputStream();
    byte[] buffer = new byte[1024];
    int len = -1;
    while( (len = inSream.read(buffer)) != -1 ){
        outStream.write(buffer, 0, len);
    }
    byte[] data = outStream.toByteArray();
    outStream.close();
    inSream.close();
    return new String(data, charsetName);
}
利用HttpURLConnection对象,我们可以从网络中获取文件数据.
URL url = new URL("http://photocdn.sohu.com/20100125/Img269812337.jpg");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setConnectTimeout(6* 1000);
if (conn.getResponseCode() != 200) throw new RuntimeException("请求url失败");
InputStream is = conn.getInputStream();
readAsFile(is, "Img269812337.jpg");

public static void readAsFile(InputStream inSream, File file) throws Exception{
    FileOutputStream outStream = new FileOutputStream(file);
    byte[] buffer = new byte[1024];
    int len = -1;
    while( (len = inSream.read(buffer)) != -1 ){
        outStream.write(buffer, 0, len);
    }
     outStream.close();
    inSream.close();
}

利用HttpURLConnection对象,我们可以向网络发送请求参数.
String requestUrl = "http://localhost:8080/itcast/contanctmanage.do";
Map<String, String> requestParams = new HashMap<String, String>();
requestParams.put("age", "12");
requestParams.put("name", "中国");
 StringBuilder params = new StringBuilder();
for(Map.Entry<String, String> entry : requestParams.entrySet()){
    params.append(entry.getKey());
    params.append("=");
    params.append(URLEncoder.encode(entry.getValue(), "UTF-8"));
    params.append("&");
}
if (params.length() > 0) params.deleteCharAt(params.length() - 1);
byte[] data = params.toString().getBytes();
URL realUrl = new URL(requestUrl);
HttpURLConnection conn = (HttpURLConnection) realUrl.openConnection();
conn.setDoOutput(true);//发送POST请求必须设置允许输出
conn.setUseCaches(false);//不使用Cache
conn.setRequestMethod("POST");            
conn.setRequestProperty("Connection", "Keep-Alive");//维持长连接
conn.setRequestProperty("Charset", "UTF-8");
conn.setRequestProperty("Content-Length", String.valueOf(data.length));
conn.setRequestProperty("Content-Type","application/x-www-form-urlencoded");
DataOutputStream outStream = new DataOutputStream(conn.getOutputStream());
outStream.write(data);
outStream.flush();
if( conn.getResponseCode() == 200 ){
        String result = readAsString(conn.getInputStream(), "UTF-8");
        outStream.close();
        System.out.println(result);
}
利用HttpURLConnection对象,我们可以向网络发送xml数据.
StringBuilder xml =  new StringBuilder();
xml.append("<?xml version=\"1.0\" encoding=\"utf-8\" ?>");
xml.append("<M1 V=10000>");
xml.append("<U I=1 D=\"N73\">中国</U>");
xml.append("</M1>");
byte[] xmlbyte = xml.toString().getBytes("UTF-8");
URL url = new URL("http://localhost:8080/itcast/contanctmanage.do?method=readxml");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setConnectTimeout(6* 1000);
conn.setDoOutput(true);//允许输出
conn.setUseCaches(false);//不使用Cache
conn.setRequestMethod("POST");            
conn.setRequestProperty("Connection", "Keep-Alive");//维持长连接
conn.setRequestProperty("Charset", "UTF-8");
conn.setRequestProperty("Content-Length", String.valueOf(xmlbyte.length));
conn.setRequestProperty("Content-Type", "text/xml; charset=UTF-8");
DataOutputStream outStream = new DataOutputStream(conn.getOutputStream());
outStream.write(xmlbyte);//发送xml数据
outStream.flush();
if (conn.getResponseCode() != 200) throw new RuntimeException("请求url失败");
InputStream is = conn.getInputStream();//获取返回数据
String result = readAsString(is, "UTF-8");
outStream.close();    

分享到:
评论

相关推荐

    HttpURLConnection文件下载\httpURLConnection文件下载

    在给定的代码片段中,展示了如何使用`HttpURLConnection`进行文件下载。 首先,我们看到代码引入了`java.io`、`java.net`和`java.util`这三个包。`java.io`包含了输入/输出流,用于处理数据的读写;`java.net`包含...

    JAVA通过HttpURLConnection 上传和下载文件的方法

    JAVA通过HttpURLConnection上传和下载文件的方法 JAVA通过HttpURLConnection上传和下载文件的方法是非常有实用价值的,需要的朋友可以参考下。HttpURLConnection是一个Java类,用于从网络中读取数据或向网络中写入...

    本示例使用HttpUrlConnection实现上传文件

    本示例重点讲解如何利用Java内置的HttpURLConnection类来完成这个任务。HttpURLConnection是Java标准库提供的一种轻量级的HTTP客户端接口,适用于简单的HTTP通信场景。 首先,我们来看一下上传文件的基本流程: 1....

    使用HttpUrlConnection实现上传文件 服务器端代码

    在Java编程环境中,当需要与Web服务器交互,例如上传文件时,`HttpURLConnection`是一个常见的选择,因为它提供了灵活且高效的方式。本篇文章将详细讲解如何使用`HttpURLConnection`实现文件上传,同时涉及到服务器...

    通过HttpURLConnection获取SESSIONID

    import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.URL; import java.util.List; import java.util.Map; public class HttpTest { private HttpURLConnection hc = ...

    AsyncTask结合HttpUrlConnection的例子

    本例子是关于如何将`AsyncTask`与`HttpURLConnection`结合,实现一个简单的网络请求。 `AsyncTask`是Android提供的轻量级异步任务框架,它允许开发者在后台线程执行耗时操作,并在主线程更新UI。`AsyncTask`包含三...

    java后台调用HttpURLConnection类模拟浏览器请求实例(可用于接口调用)

    本篇文章将深入讲解如何使用`HttpURLConnection`类来模拟浏览器请求,并通过实例展示其在接口调用中的应用。 首先,`HttpURLConnection`是`java.net.URLConnection`的一个子类,用于处理HTTP协议。在使用`...

    HttpURLConnection servlet 多文件参数 断点上传

    本知识点将深入探讨如何使用`HttpURLConnection`与Servlet协同工作,处理多文件参数以及实现断点上传功能。 首先,`HttpURLConnection`是Java API中的一个核心类,它负责提供HTTP协议的连接功能。相比Apache ...

    使用HttpURLConnection或HttpClient方式传json值到spring中

    本文将详细介绍如何使用`HttpURLConnection`和`HttpClient`这两种方式来实现这一目标。 首先,让我们从`HttpURLConnection`开始。`HttpURLConnection`是Java内置的HTTP客户端,它简单且易于使用,适用于轻量级的...

    Android-使用HttpURLConnection实现断点续传

    HttpURLConnection是Java标准库提供的一种网络连接接口,适用于Android系统,它提供了更高效、更灵活的网络通信方式。本文将详细介绍如何利用HttpURLConnection实现Android应用中的断点续传功能。 首先,理解断点续...

    HttpURLConnection读取本地目录上传远程服务器

    本话题主要关注如何使用`HttpURLConnection`来实现从本地目录读取资源并上传到远程服务器的功能。 首先,`HttpURLConnection`是`java.net.URL`类的子类,它可以建立与指定URL所代表的服务器的连接,并执行HTTP协议...

    Httpurlconnection

    在这个主题中,我们将深入探讨HttpURLConnection的基本操作及其在实际应用中的使用。 首先,了解HttpURLConnection的基本结构是非常重要的。它继承自URLConnection类,提供了对HTTP协议的支持。通过URL对象的open...

    使用HttpURLConnection下载图片

    在本例中,我们将探讨如何使用`HttpURLConnection`来下载图片,这是一个基础但实用的网络编程任务。下面我们将详细介绍这个过程,并涉及到的相关知识点。 1. **HttpURLConnection简介**: `HttpURLConnection`是`...

    java实现多次HttpURLConnection共享session

    HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setRequestMethod("POST"); // 设置请求体,比如username=foo&password=bar // 发送请求,读取响应,获取Set-Cookie头 ``` ...

    android HttpURLConnection上传图片demo

    这个"android HttpURLConnection上传图片demo"提供了一个具体的示例,教我们如何使用HttpURLConnection来完成这一任务。HttpURLConnection是Java标准库中的一个类,它允许Android应用程序与HTTP服务器进行通信,执行...

    Android HttpURLConnection.getResponseCode()错误解决方法

    正文:我在使用HttpURLConnection.getResponseCode()的时候直接报错是IOException错误,responseCode = -1。一直想不明白,同一个程序我调用了两次,结果有一个链接一直OK,另一个却一直报这个错误。后来发现两个...

    HttpURLConnection使用总结示例源码

    本篇文章将深入探讨HttpURLConnection的使用方法、特性以及一些关键的示例代码。 一、HttpURLConnection简介 HttpURLConnection继承自URLConnection,它提供了对HTTP协议的直接支持。相比于HttpClient,...

    Java自带的HttpURLConnection访问接口实现文件上传

    在本文中,我们将深入探讨如何使用HttpURLConnection实现文件上传,同时也会涉及普通参数的传递。 首先,我们需要理解HTTP请求的基本结构。HTTP请求通常由以下几个部分组成:请求行、请求头、空行和请求体。在文件...

    android 联网请求的两种方式HttpURLConnection和HttpClient

    常见的联网请求方式有两种:HttpURLConnection和HttpClient。下面将详细讲解这两种方法,以及它们如何处理POST和GET请求。 **HttpURLConnection** HttpURLConnection是Java标准库提供的类,自Android 2.3(API级别9...

    Android HttpURLConnection 读取网络图片.rar

     HttpURLConnection conn = (HttpURLConnection) imageUrl.openConnection();// 取得连接  conn.connect();  InputStream is = conn.getInputStream();//取得返回的InputStream  bitmap = BitmapFactory....

Global site tag (gtag.js) - Google Analytics