分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 技术分享

HTTP请求类

发布时间:2023-09-06 01:39责任编辑:沈小雨关键词:暂无标签
package com.paytest.util;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.PrintWriter;import java.io.UnsupportedEncodingException;import java.net.URL;import java.net.URLConnection;import java.net.URLEncoder;import java.util.List;import java.util.Map;public class HttpRequest { ???/** ????* 向指定URL发送GET方法的请求 ????* ?????* @param url ????* ???????????发送请求的URL ????* @param param ????* ???????????请求参数,请求参数应该是 name1=value1&name2=value2 的形式。 ????* @return URL 所代表远程资源的响应结果 ????*/ ???public static String sendGet(String url, String param) { ???????String result = ""; ???????BufferedReader in = null; ???????try { ???????????String urlNameString = url + "?" + param; ???????????URL realUrl = new URL(urlNameString); ???????????// 打开和URL之间的连接 ???????????URLConnection connection = realUrl.openConnection(); ???????????// 设置通用的请求属性 ???????????/** ????????????* application/x-javascript text/xml->xml数据 ????????????* application/x-javascript->json对象 ?????????????* application/x-www-form-urlencoded->表单数据 ?????????????* application/json;charset=utf-8 -> json数据 ?????????????* */ ???????????connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); ????????????connection.setRequestProperty("accept", "*/*"); ???????????connection.setRequestProperty("connection", "Keep-Alive"); ???????????connection.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)"); ???????????// 建立实际的连接 ???????????connection.connect(); ???????????// 获取所有响应头字段 ???????????Map<String, List<String>> map = connection.getHeaderFields(); ???????????// 遍历所有的响应头字段// ???????????for (String key : map.keySet()) {// ???????????????System.out.println(key + "--->" + map.get(key));// ???????????} ???????????// 定义 BufferedReader输入流来读取URL的响应 ???????????in = new BufferedReader(new InputStreamReader(connection.getInputStream(), "utf-8")); ???????????String line; ???????????while ((line = in.readLine()) != null) { ???????????????result += line; ???????????} ???????} catch (Exception e) { ???????????System.out.println("发送GET请求出现异常!" + e); ???????????e.printStackTrace(); ???????????result="IO_EXCEPTION"; ???????} ???????// 使用finally块来关闭输入流 ???????finally { ???????????try { ???????????????if (in != null) { ???????????????????in.close(); ???????????????} ???????????} catch (Exception e2) { ???????????????e2.printStackTrace(); ???????????} ???????} ???????return result; ???} ???/** ????* 向指定 URL 发送POST方法的请求 ????* ?????* @param url ????* ???????????发送请求的 URL ????* @param param ????* ???????????请求参数,请求参数应该是 name1=value1&name2=value2 的形式。 ????* @return 所代表远程资源的响应结果 ????*/ ???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(); ???????????// 设置通用的请求属性 ???????????/** ????????????* application/x-javascript text/xml->xml数据 ????????????* application/x-javascript->json对象 ?????????????* application/x-www-form-urlencoded->表单数据(key=value&key=value...形式的数据) ????????????* application/json;charset=utf-8 -> json数据 ?????????????* */ ???????????conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); ???????????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(), "utf-8")); ???????????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; ???} ???public static void main(String[] args) throws UnsupportedEncodingException { ???????String s="年后FDSA你好啊"; ???????//String string = URLEncoder.encode(s, "utf-8"); ???????String string = URLEncoder.encode(s, "gbk"); ???????System.out.println(string); ???????String sr = HttpRequest.sendGet("https://127.0.0.1/pay/queryOrder", "cpid=weixing&cppwd=654321&phone=13293787666&spnumber=&msgcont="+string+"&extend=01234"); ???????System.out.println(sr); ???}}

HTTP请求类

原文地址:https://www.cnblogs.com/OnlyCT/p/8350546.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved