`

获取HttpURLConnection 响应体内容

阅读更多

java 中,有时需要使用HttpURLConnection 模拟浏览器发送http请求,那么如何获取HttpURLConnection 中的响应体呢?

private static byte[] connection(HttpURLConnection huc, byte[] sendBytes,
			String mode) throws Exception {
		if (mode.equalsIgnoreCase("POST") && sendBytes != null) {
			huc.getOutputStream().write(sendBytes);
			huc.getOutputStream().flush();
			huc.getOutputStream().close();
		}

		int resCode = huc.getResponseCode();

		if (resCode == HttpURLConnection.HTTP_OK) {
			int contentLength = huc.getContentLength();
			if (contentLength > 0) {
//				
				System.out.println("httputil,contentLength:"+contentLength);
//				return readData(huc);
				return readDataFromLength(huc, contentLength);
			} else {
				return readData(huc);
			}
		}
		return null;
	}

private static byte[] readData(HttpURLConnection huc) throws Exception {
		InputStream in = huc.getInputStream();
		return FileUtils.readBytes(in);

	}

	private static byte[] readDataFromLength(HttpURLConnection huc,
			int contentLength) throws Exception {

		InputStream in = huc.getInputStream();
		BufferedInputStream bis = new BufferedInputStream(in);

		// 数据字节数组
		byte[] receData = new byte[contentLength];
		int readLength = 0;
		// 数据数组偏移量
		int offset = 0;

		readLength = bis.read(receData, offset, contentLength);
		// 已读取的长度
		int readAlreadyLength = readLength;
		while (readAlreadyLength < contentLength) {
			readLength = bis.read(receData, readAlreadyLength, contentLength-readAlreadyLength);
			readAlreadyLength = readAlreadyLength + readLength;
		}

		return receData;
	}

 

0
3
分享到:
评论

相关推荐

    iteye的技术博客集合

    - **获取 HttpURLConnection 响应体内容**:这部分讲解了如何从 HttpURLConnection 中读取 HTTP 响应数据。 - **Java 如何读取 src 根目录下的属性文件**:这部分介绍了如何在 Java 项目中读取位于 src 目录下的属性...

    HttpURLConnection获取json数据解析

    综上所述,使用HttpURLConnection获取JSON数据主要包括建立HTTP连接、发送请求、接收响应、解析JSON数据,以及通过Handler在子线程和主线程间传递数据。在实际应用中,还需要考虑错误处理、网络状态检测等细节,确保...

    AsyncTask结合HttpUrlConnection的例子

    5. 读取响应:如响应码、响应头和响应体数据。 6. 关闭连接:使用完毕后记得关闭连接,释放资源。 在`AsyncTask`中,`doInBackground()`方法就是执行网络请求的地方。你可以先创建`HttpURLConnection`对象,然后...

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

    HttpURLConnection可以模拟浏览器的行为,向服务器发送请求,并获取服务器的响应。 二、JAVA通过HttpURLConnection上传文件的方法 下面是一个使用HttpURLConnection上传文件的示例代码: ```java public class ...

    HttpURLconnection

    - 创建连接:首先,我们需要通过URL对象的openConnection()方法获取HttpURLConnection实例。例如: ```java URL url = new URL("http://example.com"); HttpURLConnection connection = (HttpURLConnection) url...

    Java 实例 - 获取 URL 响应头信息源代码+详细指导教程.zip

    此外,`HttpURLConnection`还提供了其他有用的方法,如`getResponseCode()`获取HTTP状态码,`getContentType()`获取Content-Type头的值,`getContentLength()`获取响应体的长度等。 为了使代码更具鲁棒性,我们应当...

    远程连接服务器HttpURLConnection

    这通常涉及到设置适当的响应头,如`Accept-Encoding`,并使用`InputStream`读取响应体: ```java connection.connect(); // 必须先调用connect()才能读取响应 BufferedReader reader = new BufferedReader(new ...

    Android 简单使用 HttpURLConnection

    在这个例子中,我们创建了一个`URL`对象,然后通过`openConnection()`方法获取到`HttpURLConnection`实例。设置了请求方法为GET,并设定了连接和读取超时时间。如果请求成功,我们可以从`connection.getInputStream...

    Android网络连接2——HttpURLConnection

    完成请求后,我们可以从`HttpURLConnection`获取响应码和响应体。响应码通常在200-300之间表示成功,其他则表示错误: ```java int responseCode = connection.getResponseCode(); if (responseCode == ...

    HttpUrlConnection实例

    这个实例主要关注如何使用`HttpURLConnection`来获取JSON格式的数据,这是一个常见的任务,特别是在移动应用或者Web服务客户端中。让我们深入探讨这个话题。 首先,`HttpURLConnection`是更现代、更高效的选择,...

    封装httpurlconnection

    - `openConnection()`: 这个方法用于获取到HTTPURLConnection实例。 - `setRequestMethod()`: 设置HTTP请求的方法,如GET、POST等。 - `setConnectTimeout()`: 设置连接超时时间。 - `setReadTimeout()`: 设置读取...

    JAVA发送HTTP请求,返回HTTP响应内容

    7. 获取响应体,通常通过`InputStream`读取响应内容并转化为字符串。 8. 封装结果到`HttpResponse`对象并返回。 `HttpResponse`是一个简单的数据载体,用于存储HTTP响应的相关信息,如响应码、响应头和响应体。在...

    HttpURLConnection之基础

    在发送请求后,可以通过`HttpURLConnection`的一些方法来获取响应信息,例如: - `getResponseCode()`:获取HTTP响应状态码,如200表示成功。 - `getResponseMessage()`:获取响应状态的描述。 - `getInputStream()...

    Android HttpUrlConnection json使用方法

    然后,我们可以创建一个HttpURLConnection实例,打开连接并读取响应: ```java URL url = new URL("http://api.example.com/data?key=value"); HttpURLConnection conn = (HttpURLConnection) url.open...

    使用HttpURLConnection

    默认情况下,`HttpURLConnection`没有设置超时,如果网络出现问题,程序可能会无限制地等待响应,导致程序阻塞。我们需要分别设置连接超时(connectTimeout)和读取超时(readTimeout),确保在一定时间内未得到响应...

    java实现多次HttpURLConnection共享session

    在Java编程中,HTTPURLConnection是Java标准库提供的一种用于处理HTTP连接的类,它允许我们发送HTTP请求并接收响应。然而,HTTP协议本身是无状态的,这意味着每次请求都是独立的,不会记住之前的交互,这对于需要...

    HttpURLConnection和okHttp两种获取网络数据的实现方法

    * 处理服务器的响应码和响应体 下面是一个使用HttpURLConnection发送GET请求的示例代码: ```java URL url = new URL("https://www.baidu.com"); HttpURLConnection connection = (HttpURLConnection) url.open...

    Android网络请求框架基于HttpUrlConnection的封装

    6. **读取响应**:通过`getInputStream()`获取服务器响应的输入流,读取数据。 7. **关闭连接**:最后别忘了调用`disconnect()`释放资源。 在封装HttpUrlConnection时,我们需要考虑以下几个方面: 1. **异步处理*...

    HttpURLConnectionTest.rar_HttpURLConnection

    6. **读取响应**:如果需要读取响应体,可以打开输入流: ```java InputStream is = connection.getInputStream(); // 读取响应数据... is.close(); ``` 7. **连接和读取超时**:你可以设置连接超时和读取超时...

    http info, tool, HttpURLConnection

    这个例子展示了如何创建一个HttpURLConnection对象,设置请求方法,获取响应码,读取响应内容,并最终关闭连接。值得注意的是,HttpURLConnection默认是异步的,但可以通过调用`setDoInput(true)`和`setDoOutput...

Global site tag (gtag.js) - Google Analytics