1、采用URLConnection(POST)
public static String sendPost(String url, String param) { PrintWriter out = null; BufferedReader in = null; String result = ""; try { URL realUrl = new URL(url); // 打开和URL之间的连接 URLConnection conn = realUrl.openConnection(); // 设置通用的请求属性 conn.setRequestProperty("accept", "*/*"); conn.setRequestProperty("connection", "Keep-Alive"); conn.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)"); // 发送POST请求必须设置如下两行 conn.setDoOutput(true); conn.setDoInput(true); // 获取URLConnection对象对应的输出流 out = new PrintWriter(conn.getOutputStream()); // 发送请求参数 out.print(param); // flush输出流的缓冲 out.flush(); // 定义BufferedReader输入流来读取URL的响应 in = new BufferedReader( new InputStreamReader(conn.getInputStream())); String line; while ((line = in.readLine()) != null) { result += line; } } catch (Exception e) { System.out.println("发送 POST 请求出现异常!"+e); e.printStackTrace(); } //使用finally块来关闭输出流、输入流 finally{ try{ if(out!=null){ out.close(); } if(in!=null){ in.close(); } } catch(IOException ex){ ex.printStackTrace(); } } return result; }
2、使用HttpURLConnection(POST)
public static String postTo(String strURL, String params) { try { URL url = new URL(strURL);// 创建连接 HttpURLConnection connection = (HttpURLConnection) url .openConnection(); connection.setDoOutput(true); connection.setDoInput(true); connection.setUseCaches(false); connection.setInstanceFollowRedirects(true); connection.setRequestProperty("Connection", "Keep-Alive"); connection.setRequestMethod("POST"); // 设置请求方式 connection.setRequestProperty("Accept", "application/text"); // 设置接收数据的格式 connection.setRequestProperty("Content-Type", "application/text"); // 设置发送数据的格式 connection.connect(); OutputStreamWriter out = new OutputStreamWriter(connection.getOutputStream(), "GBK"); // utf-8编码 out.append(params); out.flush(); out.close(); // 读取响应 int length = (int) connection.getContentLength();// 获取长度 InputStream is = connection.getInputStream(); if (length != -1) { byte[] data = new byte[length]; byte[] temp = new byte[512]; int readLen = 0; int destPos = 0; while ((readLen = is.read(temp)) > 0) { System.arraycopy(temp, 0, data, destPos, readLen); destPos += readLen; } String result = new String(data, "GBK"); // utf-8编码 System.out.println(result); return result; } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } return "error"; // 自定义错误信息 }
3、使用HTTPClient(POST), 其中参数为键值对,返回值为字节数组。
@SuppressWarnings("unchecked") public static byte[] doHttpRequest(String host, Map<String, String> params) throws IOException { byte[] bt = null; Map<String, String> map = null == params ? new HashMap<String, String>() : params; DefaultHttpClient httpclient = new DefaultHttpClient(); HttpPost httpost = new HttpPost(host); List<NameValuePair> nvps = new ArrayList<NameValuePair>(); Iterator it = map.entrySet().iterator(); while (it.hasNext()) { Map.Entry<String, String> entry = (Entry<String, String>) it.next(); nvps.add(new BasicNameValuePair(entry.getKey(), entry.getValue())); } httpost.setEntity(new UrlEncodedFormEntity(nvps, "GBK")); HttpResponse response = httpclient.execute(httpost); if (200 != response.getStatusLine().getStatusCode()) { throw new RuntimeException("http返回状态" + response.getStatusLine().getStatusCode()); } InputStream in = response.getEntity().getContent(); ByteArrayOutputStream bos = new ByteArrayOutputStream(); int temp; byte[] buf = new byte[1024]; while ((temp = in.read(buf, 0, buf.length)) != -1) { bos.write(buf, 0, temp); } bt = bos.toByteArray(); return bt; }
4、httpclient get请求,返回为String
public static String getHttpRequestContent(String serialUrl, String encode) throws ClientProtocolException, IOException { DefaultHttpClient httpclient = new DefaultHttpClient(); HttpGet httpGet = new HttpGet(serialUrl); HttpResponse response = httpclient.execute(httpGet); if (200 != response.getStatusLine().getStatusCode()) { throw new RuntimeException("http返回状态" + response.getStatusLine().getStatusCode()); } HttpEntity entity = response.getEntity(); InputStreamReader in = new InputStreamReader(entity.getContent(), encode == null ? HTTP.UTF_8 : encode); BufferedReader reader = new BufferedReader(in); String line = null; String content = ""; while (null != (line = reader.readLine())) { content += line; } in.close(); reader.close(); httpclient.getConnectionManager().shutdown(); return content; }
相关推荐
首先,我们来理解GET和POST两种请求方法。GET请求通常用于获取服务器上的资源,它将参数附加到URL中,具有可缓存、可被书签、地址栏可见等特性。POST请求则用于向服务器提交数据,常用于创建或更新资源,其参数包含...
我们将重点关注GET和POST请求,这两种请求方式在Web开发中最为常见。以下是对每种方式的详细说明: 1. **路径变量(Path Variables)** 在Spring MVC中,我们可以使用`@PathVariable`注解来捕获URL模板中的动态...
### Spring Boot 中 GET 请求与 POST...通过以上介绍,我们可以了解到 Spring Boot 中 GET 请求与 POST 请求的具体实现方式及其相关的注解使用方法。这些知识点对于理解和使用 Spring Boot 构建 RESTful API 非常关键。
这种方式适用于POST请求,同样适用于GET请求: ```java public class UserModel { private String username; private String password; // getters and setters } @RequestMapping("/addUser3") public ...
Tomcat作为Servlet容器,处理这两种请求的方式略有不同。当客户端发送一个GET或POST请求到Tomcat时,服务器会通过Servlet容器解析请求,然后根据请求方法调用相应的Servlet方法。对于GET请求,Servlet的`doGet()`...
在Java中,可以通过多种方式实现HTTP请求,例如使用`java.net.URL`和`java.net.HttpURLConnection`类,或者使用Apache HttpClient库。这个项目源代码可能包含了使用这些方法之一的例子,展示如何发送GET、POST以及...
在Java Web开发中,POST和GET请求是HTTP协议中最常见的两种数据传输方式。然而,当涉及到中文字符时,由于字符编码的不同可能导致乱码问题。以下将详细解释如何解决Java中处理POST和GET请求时的中文乱码问题。 **...
在Java编程中,HTTP POST和GET是两种基本的HTTP请求方法,用于客户端向服务器发送数据。在使用这两种方法时,通常需要引入特定的库或jar包来实现HTTP通信。以下是对`httppost`和`httpget`所需jar包的详细解释: 1. ...
本文将详细介绍Android开发中常用的几种网络请求方式,并以GET和POST请求为例进行具体说明。 #### 一、Android网络请求的基础概念 在开始介绍具体的请求方式之前,我们先来了解一些基本概念。 - **HTTP...
在IT行业中,HTTP(超文本传输协议)是用于在Web上传输数据的基础协议。它定义了客户端(如浏览器)和服务器之间如何...理解这两种请求方法的工作原理及其在不同场景下的适用性,对于任何Web开发者来说都是至关重要的。
总之,通过Java实现HTTPS网络请求,需要处理SSL连接、配置连接参数并选择GET或POST方式发送数据。在实际开发中,为了增强安全性,应当避免信任所有证书,而是应正确验证服务器证书,遵循标准的SSL/TLS流程。同时,...
接下来,我们将详细讲解如何使用`HttpURLConnection`实现这两种请求。 **发送GET请求** ```java URL url = new URL("http://example.com/api/data"); HttpURLConnection connection = (HttpURLConnection) url....
在Java中,处理JSON数据通常有以下几种方式: 1. 使用Gson库:Google提供的Gson库可以方便地将Java对象转换为JSON字符串,反之亦然。只需简单的API调用,就能完成JSON的序列化和反序列化。 2. 使用Jackson库:...
本文将详细探讨Spring MVC中常见的三种请求映射方式:基于注解的映射、基于XML配置的映射以及基于Java配置的映射。我们将深入理解每种方式的工作原理,并通过实例来展示其用法。 ### 1. 基于注解的映射 **注解驱动...
本篇文章将深入解析给定文件中的几种请求情况,包括GET与POST请求、图片请求,以及它们在Servlet环境下的具体应用。 ### GET请求解析 #### 一般格式与特点 GET请求通常用于从服务器检索数据,数据会附在URL之后,...
GET和POST是HTTP协议中最常见的两种请求方法: 1. GET请求:GET是最基础的HTTP请求方式,通常用于获取资源。它将数据附在URL后面,可以被浏览器缓存,并且会被记录在浏览器的历史记录中。GET请求的参数限制在URL...
与GET请求不同,POST请求的数据不包含在URL中,而是放在请求体里,这使得POST请求能传输大量或敏感数据。 在Java中,处理POST请求时的加密通常涉及到以下几个关键技术: 1. **Base64编码**:在"javapostbase64"这...
GET方式和POST方式是HTTP协议中最常见的两种数据提交方法,它们在Web开发中扮演着重要角色。 1. **数据传输方向** - GET方式主要用来从服务器获取数据,比如加载网页、查询信息等。 - POST方式则是用于向服务器...
在Java编程中,HTTPURLConnection是Java标准库提供的一种用于处理HTTP连接的类,它允许我们发送HTTP请求并接收响应。然而,HTTP协议本身是无状态的,这意味着每次请求都是独立的,不会记住之前的交互,这对于需要...
为了解决上述问题,可以通过以下几种方式来处理: 1. **使用@RequestParam注解**: - 直接在Feign接口的方法参数上添加`@RequestParam`注解,明确指定每个参数名称。这种方式虽然可行,但对于包含大量字段的POJO...