使用HttpURLConnection发请求获取数据
参考代码:
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStream; import java.net.HttpURLConnection; import java.net.URL; /** * 功能说明:HttpClient - 通过发送Http请求获取目标URL的数据 */ public class HttpClient { /** 提交方式POST **/ public static final String SUBMIT_METHOD_POST = "POST"; /** 提交方式GET **/ public static final String SUBMIT_METHOD_GET = "GET"; /** * 通过http请求获取数据 * @param urlStr url地址,如:www.baidu.com * @param param url的?后的参数,如:www.baidu.com?a=1&&b=2,则param为"a=1&&b=2" * @return 返回读取到的数据(json字符串) */ public static String pub(String urlStr,String param,String method) { URL url = null; HttpURLConnection connection = null; StringBuffer buffer = new StringBuffer(); System.out.println("request:"+urlStr+"?"+param); try { /*建立连接*/ url = new URL(urlStr); connection = (HttpURLConnection) url.openConnection(); /*设置连接属性 */ connection.setDoOutput(true);// 使用 URL 连接进行输出 connection.setDoInput(true);// 使用 URL 连接进行输入 connection.setUseCaches(false);// 忽略缓存 connection.setRequestMethod(method);// 设置URL请求方法 /*设置请求属性*/ connection.setRequestProperty("Content-Length",param.length()+""); connection.setRequestProperty("Content-Type", "application/octet-stream"); connection.setRequestProperty("Connection", "Keep-Alive");// 维持长连接 connection.setRequestProperty("Charset", "UTF-8");// 设置编码 /*建立输出流,并写入数据*/ OutputStream outputStream = connection.getOutputStream(); outputStream.write(param.getBytes("UTF-8")); /*读取数据*/ BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream(), "UTF-8")); String line = ""; while ((line = reader.readLine()) != null) { buffer.append(line); } reader.close(); } catch (IOException e) { e.printStackTrace(); } finally { if (connection != null) { connection.disconnect(); } } System.out.println("response:"+buffer.toString()); return buffer.toString(); } /*测试*/ public static void main(String[] args) { pub("http://f.apiplus.cn/ssq.json", "a=1",SUBMIT_METHOD_POST); } }
测试结果:
参考:
Java中使用HttpURLConnection发起POST请求
用Java的HttpClient写一个简单的http请求和返回
相关推荐
本篇将深入讲解如何使用HTTPURLConnection获取服务器数据并进行JSON解析。 首先,我们需要理解HTTP的基础概念。HTTP(超文本传输协议)是一种应用层协议,用于在Web上交换数据。HTTPURLConnection类提供了创建和...
为了在子线程获取数据后更新UI,我们需要使用Handler。 1. **创建Handler**:在主线程中创建一个Handler实例,重写`handleMessage(Message msg)`方法。 2. **发送消息**:在子线程中,解析完JSON数据后,创建一个`...
本项目"Android25图灵聊天项目------HttpURLConnection请求get文本数据"聚焦于如何通过HttpURLConnection实现HTTP GET请求,获取服务器上的文本数据。以下是对这个项目的详细解读。 首先,我们要了解HTTP GET请求的...
本教程将深入探讨如何使用`HttpURLConnection`在Android Studio中请求网络数据,包括文本和图片。 首先,我们需要在AndroidManifest.xml文件中添加INTERNET权限,这是所有网络请求的前提: ```xml ``` 接下来,...
在Android开发中,网络编程是不可或...使用HttpURLConnection可以方便地实现这些操作,提高应用的用户体验。在实际开发中,我们还需要考虑多线程下载、并发控制、下载队列管理等高级特性,以进一步优化性能和资源利用。
调用URL对象的openConnection( )来获取HttpURLConnection对象实例: HttpURLConnection conn = (HttpURLConnection) url.openConnection(); 设置HTTP请求使用的方法:conn.setRequestMethod("GET"); 设置连接超时,...
在Android开发中,联网请求是应用与服务器交互的基础,用于获取或发送数据。常见的联网请求方式有两种:HttpURLConnection和HttpClient。下面将详细讲解这两种方法,以及它们如何处理POST和GET请求。 **...
本篇文章将深入探讨如何在Android中简单使用`HttpURLConnection`进行网络请求。 首先,了解`HttpURLConnection`的基本用法。在Android中,网络操作通常在子线程(非UI线程)中进行,以避免阻塞主线程导致应用无响应...
在这个场景下,我们将详细探讨如何使用Java原生的HttpURLConnection实现一个GET请求。 首先,我们需要了解GET请求的基本原理。GET请求是最常见的HTTP方法,用于从服务器获取资源。它将参数附加到URL中,以便服务器...
结合这两个部分,你可以构建一个完整的Java程序,使用HttpURLConnection从Web Service获取XML数据,然后使用DOM解析器处理这些数据。在实际项目中,可能还需要处理异常、设置请求头、使用POST方法发送数据等更复杂的...
本篇文章将深入讲解如何使用`HttpURLConnection`类来模拟浏览器请求,并通过实例展示其在接口调用中的应用。 首先,`HttpURLConnection`是`java.net.URLConnection`的一个子类,用于处理HTTP协议。在使用`...
在Java中,我们可以使用`java.net.URL`、`java.net.HttpURLConnection`或者第三方库如Apache HttpClient、OkHttp来实现这些请求。 `HttpServletRquest`类在描述中被提及,它是Java Servlet API的一部分,主要用于...
1. **创建连接**:使用`URL`对象构造一个`HttpURLConnection`实例,通常会通过`openConnection()`方法来实现。例如: ```java URL url = new URL("http://yourserver.com/upload"); HttpURLConnection connection...
本篇文章将详细讲解如何使用`HttpURLConnection`实现文件上传,同时涉及到服务器端处理上传文件的代码。我们将讨论以下核心知识点: 1. **HttpURLConnection介绍**: `HttpURLConnection`是Java标准库中的类,它是...
4. **写入请求体**:对于POST请求,可以通过`getOutputStream()`获取输出流,然后写入请求数据。这里通常需要序列化JSON数据,例如使用fastjson库: ```java String jsonString = "{\"key\":\"value\"}"; connection...
使用`HttpURLConnection`进行网络请求的基本步骤包括: 1. 获取`URL`对象,通过`openConnection()`方法创建`HttpURLConnection`实例。 2. 设置请求方法(GET、POST等)。 3. 可选地设置请求头,如`User-Agent`、`...
接下来,我们将详细讲解如何使用`HttpURLConnection`实现这两种请求。 **发送GET请求** ```java URL url = new URL("http://example.com/api/data"); HttpURLConnection connection = (HttpURLConnection) url....
成功发送请求后,可以使用`getInputStream()`读取响应数据。如果数据是JSON或XML格式,可以使用相应的库进行解析。对于大文件下载,可以使用`BufferedInputStream`和`FileOutputStream`分块写入文件。 6. **关闭...
- 发起HTTP请求获取图片的URL,通过`conn.getInputStream()`获取图片流。 - 将图片流转换为Bitmap对象,例如:`Bitmap bitmap = BitmapFactory.decodeStream(inputStream);` - 将Bitmap显示在ImageView上:`...
在Android应用开发中,网络请求是必不可少的一部分,用于获取服务器数据、更新UI或者进行其他交互。本篇文章将深入探讨如何基于HttpUrlConnection实现一个自定义的网络请求框架。HttpUrlConnection是Android系统提供...