当前位置: 首页 > 编程日记 > 正文

java http请求 工具类_Java 实现 Http 请求工具类

1 packagecom.demo.util;2

3 importjava.io.BufferedReader;4 importjava.io.IOException;5 importjava.io.InputStreamReader;6 importjava.io.OutputStreamWriter;7 importjava.net.URL;8 importjava.net.URLConnection;9

10 public classHttpUtil {11 /**

12 * 向指定URL发送GET方法的请求13 *14 *@paramurl 发送请求的URL15 *@paramparam 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。16 *@returnresult 所代表远程资源的响应结果17 */

18 public staticString sendGet(String url, String param) {19 String result = "";20 BufferedReader in = null;21 try{22 String urlNameString = url + "?" +param;23 URL realUrl = newURL(urlNameString);24 //打开和URL之间的连接

25 URLConnection connection =realUrl.openConnection();26 //设置通用的请求属性

27 connection.setRequestProperty("accept", "*/*");28 connection.setRequestProperty("connection", "Keep-Alive");29 connection.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");30 //建立实际的连接

31 connection.connect();32 /*//获取所有响应头字段33 Map> map = connection.getHeaderFields();34 //遍历所有的响应头字段35 for (String key : map.keySet()) {36 System.out.println(key + "--->" + map.get(key));37 }*/

38 //定义 BufferedReader输入流来读取URL的响应

39 in = new BufferedReader(newInputStreamReader(connection.getInputStream()));40 String line;41 while ((line = in.readLine()) != null) {42 result +=line;43 }44 } catch(Exception e) {45 System.out.println("发送GET请求出现异常!" +e);46 e.printStackTrace();47 }48 //使用finally块来关闭输入流

49 finally{50 try{51 if (in != null) {52 in.close();53 }54 } catch(Exception e2) {55 e2.printStackTrace();56 }57 }58 returnresult;59 }60

61

62 /**

63 * 向指定URL发送POST方法的请求64 *65 *@paramurl 发送请求的 URL66 *@paramparam 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。67 *@returnresult 所代表远程资源的响应结果68 */

69 public staticString sendPost(String url, String param) {70 OutputStreamWriter out = null;71 BufferedReader in = null;72 String result = "";73 try{74 URL realUrl = newURL(url);75 //打开和URL之间的连接

76 URLConnection conn =realUrl.openConnection();77 //设置通用的请求属性

78 conn.setRequestProperty("accept", "*/*");79 conn.setRequestProperty("connection", "Keep-Alive");80 conn.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");81 conn.setRequestProperty("Charset", "utf-8");82 //发送POST请求必须设置如下两行

83 conn.setDoOutput(true);84 conn.setDoInput(true);85 //获取URLConnection对象对应的输出流

86 out = new OutputStreamWriter(conn.getOutputStream(), "utf-8");//这里设定需要字符集,防止项目环境编码与URL地址环境的编码(UTF-8)不一样,造成响应结果乱码87 //发送请求参数

88 out.write(param);89 //flush输出流的缓冲

90 out.flush();91 //定义BufferedReader输入流来读取URL的响应

92 in = new BufferedReader(new InputStreamReader(conn.getInputStream(),"utf-8"));93 String line;94 while ((line = in.readLine()) != null) {95 result +=line;96 }97 } catch(Exception e) {98 System.out.println("发送 POST 请求出现异常!"+e);99 e.printStackTrace();100 }101 //使用finally块来关闭输出流、输入流

102 finally{103 try{104 if(out!=null){105 out.close();106 }107 if(in!=null){108 in.close();109 }110 }111 catch(IOException ex){112 ex.printStackTrace();113 }114 }115 returnresult;116 }117

118 }

相关文章:

Entity Framework学习三:查询、插入、更新和删除操作

1.LINQ过滤数据 var query from person in context.Peoplewhere person.FirstName.StartsWith("a")select person; var methodQuery context.People.Where(p > p.FirstName.StartsWith("a")); 两种不同的写法,效果一样。 多条件组合查找…

c/s开发基础自学纪录为主

1.常用属性 (1)Name属性:用来获取或设置窗体的名称。 (2)WindowState属性:用来获取或设置窗体的窗口状态。 (3)StartPosition属性:用来获取或设置运行时窗体的…

不错的威盾PHP加密专家解密算法

<?php /*********************************** *威盾PHP加密专家解密算法 http://www.my400800.cn ***********************************/ $filename"phpfilename.php";//要解密的文件 $lines file($filename);//0,1,2行 //第一次base64解密 $content"&quo…

java网络编程udp_java网络编程 UDP网络编程问题

为什么我的代码运行后&#xff0c;黑窗口&#xff0c;不显示一端发来的数据&#xff0c;而是黑窗口打印很多空格&#xff1f;请帮一下&#xff0c;初学者&#xff01;谢谢&#xff0c;下面是二个具有发送和接受功能的代码&#xff1f;发送端————importjava.net.*;imp...为什…

权限组件(10):三级菜单的展示和增删改查

效果图&#xff1a; 三级菜单的实现和一级、二级菜单差不多。需要注意的是增加三级菜单时&#xff0c;三级菜单是用户提交后在后台通过二级菜单的id添加的。 一、路由分发 rbac/urls.py ... from django.urls import re_pathfrom rbac.views import menu ...urlpatterns [...…

ROS知识(4)----初级教程之常见问题汇总

一、开机启动ROS的工作空间的路径设置失败 现象&#xff1a;在教程&#xff1a;http://wiki.ros.org/cn/ROS/Tutorials/CreatingPackage中的第5.1小节&#xff0c;运行以下命令失败&#xff1a; $ rospack depends1 beginner_tutorials 提示错误&#xff1a;[rospack] Error: …

sql server 海量数据速度提升:SQL优化-索引(11) 【转】

12、高效的TOP 事实上&#xff0c;在查询和提取超大容量的数据集时&#xff0c;影响数据库响应时间的最大因素不是数据查找&#xff0c;而是物理的I/0操作。如&#xff1a; select top 10 * from ( select top 10000 gid,fariqi,title from tgongwen where neibuyonghu办公室or…

java重定向带参数_急 求助重新封装重定向带参数问题

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼这是我写的代码 不知道行不行 求助package base.web.resolver.result;import java.util.HashMap;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.apache.logging.log4j.…

Java程序员从笨鸟到菜鸟之(五)java开发常用类(包装,数字处理集合等)(下)...

本文来自&#xff1a;曹胜欢博客专栏。转载请注明出处&#xff1a;http://blog.csdn.net/csh624366188 写在前面&#xff1a;由于前天项目老师建设局的项目快到验收阶段&#xff0c;所以&#xff0c;前天晚上通宵&#xff0c;昨天睡了大半天&#xff0c;下午我们宿舍聚会&#…

对数组中的数字 1 和 2 进行排序,使得数字 1、2 分别位于前、后部分

问题描述&#xff1a;假设某个数组中只有数字 1 和 2&#xff0c;进行排序&#xff0c;使得数字 1 位于数组前部分&#xff0c;数字 2 位于后部分。 这道算法题其实不是很难&#xff0c;使用各种排序算法应该都能解出&#xff0c;但是若要考虑性能问题&#xff0c;那就得选择一…

@class和#import

class 作用&#xff1a; 可以简单的引用一个类 简单使用&#xff1a; class Dog; 仅仅是告诉编译器&#xff0c;Dog是一个类&#xff1b;并不会包含Dog这个类的所有内容 具体使用&#xff1a; 在.h文件中使用class引用一个类 在.m文件中使用#import包含这个类的.h文件 作用上的…

java登陆界面连接数据库_java 登陆界面怎么写,连接数据库后

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼界面是package 界面类;import javax.jws.soap.SOAPBinding.Use;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing…

C# 汉字编码GB2312转换

功能界面 源码&#xff1a; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms;namespace wordsConvert {public partial class Fo…

python批量爬取文档

最近项目需要将批量链接中的pdf文档爬下来处理&#xff0c;根据以下步骤完成了任务&#xff1a; 将批量下载链接copy到text中&#xff0c;每行1个链接&#xff1b;再读txt文档构造url_list列表&#xff0c;利用readlines返回以行为单位的列表&#xff1b;利用str的rstrip方法&a…

[Android]webview直接加载网页允许JS,进度条,当前应用内跳转

webview&#xff0c;用于在应用里面直接加载网页本代码参考了&#xff1a;官方的webview实例介绍&#xff1a;https://developer.android.com/guide/tutorials/views/hello-webview.html 加上进度条&#xff1a; http://blog.csdn.net/stoneson/article/details/6068089 整个源…

ubuntu 14.04 安装java_Ubuntu 14.04中安装Java

第三&#xff1a;在Ubuntu 和 Linux Mint上安装Java看了各种类型"java";的不同之后&#xff0c;让我们看如何安装他们。1)在Ubuntu和Linux Mint上安装JRE打开终端&#xff0c;使用下面的命令安装JRE&#xff1a;sudo apt-get install default-jre2)在Ubuntu和Linux M…

C# 生成系统唯一号

生成唯一号&#xff1a;思路&#xff0c;根据yymmddhhmmss自增长号唯一服务器号( SystemNo)生成唯一码&#xff0c;总长度19&#xff0c;例如&#xff1a;1509281204550000101. public class UniqueNumber{private static long num 0;//流水号private static object lockObj …

EBS上用过的一些接口表整理信息

AP接口表&#xff1a;AP_INVOICES_INTERFACEAP_INVOICE_LINES_INTERFACE涉及的请求&#xff1a;应付款管理系统开放接口导入涉及案例&#xff1a; 运费导AP、费用导APPO接口表&#xff1a;申请&#xff1a;PO_REQUISITIONS_INTERFACE_ALL涉及请求&#xff1a;导入申请采购&…

linux源码编译安装nginx

1.从nginx的官方网站下载nginx的安装源码包&#xff0c;要下载.gz格式的包才是linux安装包 网址http://nginx.org/download/ wget http://nginx.org/download/nginx-1.5.9.tar.gz 2.解压 tar -zxvf nginx-1.5.9.tar.gz yum -y install pcre-devel gcc gcc-c autoconf automak…

usr share里没有mysql_无法在ubuntu 12.04上安装mysql,找不到消息文件’/usr/share/mysql/errmsg.sys’...

尝试使用apt-get安装mysql但它失败了# apt-get install MysqL-serverReading package lists... DoneBuilding dependency treeReading state information... DoneThe following extra packages will be installed:MysqL-server-5.5Suggested packages:tinycaThe following NEW …

android:更改PagerTabStrip背景颜色,标题字体样式、颜色和图标,以及指示条的颜色...

1.更改PagerTabStrip背景颜色我们直接在布局中设置background属性可以&#xff1a;<android.support.v4.view.ViewPagerandroid:id"id/pager"android:layout_width"fill_parent"android:layout_height"fill_parent" ><android.support.…

敏捷开发日常跟进系列之二:燃尽图(中)

这是敏捷开发日常跟进系列的第二篇&#xff08;栏目目录&#xff09;。 迭代及燃尽图的目标 燃尽图的目标是完成迭代的目标&#xff0c;迭代的目标是什么呢&#xff1f; 1. 按产品经理的要求&#xff0c;交付计划会中计划的用户故事 2. 尽量完成1 之后还会看到&#xff0c;这个…

[python][jupyter notebook]之菜鸟安装[pyecharts]中Geo或Map显示问题

作为菜鸟&#xff0c;在学习使用pyecharts模块进入jupyter notebook的时候&#xff0c;又遇到了问题——那就是&#xff0c;可以使用一下代码&#xff0c;导入Geo和Map模块&#xff0c;但是弄了之后看不见地图。 from pyecharts import Geo from pyecharts import Map 所以&…

c语言多线程mysql_多线程读写mysql数据库

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼unsigned int __stdcall scan(PVOID pM){char ip[20];strcpy(ip, (char*)pM);MYSQL mysql;MYSQL_RES* result;//初始化mysql句柄mysql_init(&mysql);//连接mysql数据库if(!mysql_real_connect(&mysql,"localhost"…

[C#,Java,PHP] - IMAP文件夹名称编码和解码方法

[C#] 来源&#xff1a;http://www.oschina.net/code/snippet_110991_2237 // 编码private string IMAPEncode(string folder){string rtn "", base64;int index 0; Regex regAsis new Regex("\G(?:[\x20-\x25\x27-\x7e])"); Regex reg26 new Rege…

fzu 2150 Fire Game 【身手BFS】

称号&#xff1a;fzu 2150 Fire Game &#xff1a;给出一个m*n的图&#xff0c;‘#’表示草坪&#xff0c;‘ . ’表示空地&#xff0c;然后能够选择在随意的两个草坪格子点火。火每 1 s会向周围四个格子扩散&#xff0c;问选择那两个点使得燃烧全部的草坪花费时间最小&#xf…

K-Means聚类算法原理

来自&#xff1a;https://www.cnblogs.com/pinard/p/6164214.html K-Means算法是无监督聚类算法&#xff0c;它有很多变体。包括初始化优化K-Means&#xff0c;距离计算优化elkan K-Means算法和大样本优化Mini Batch K-Means算法。 1. K-Means原理 K-Means算法思想&#xff1a;…

safari java插件故障_safari flash插件故障怎么办 mac safari flash插件故障解决方法

近几日&#xff0c;许多网友都在关注safari flash插件故障怎么办 mac safari flash插件故障解决方法这个话题&#xff0c;那么safari flash插件故障怎么办 mac safari flash插件故障解决方法具体情况是怎么样的呢&#xff1f;safari flash插件故障怎么办 mac safari flash插件故…

Traveller项目介绍

Traveller&#xff0c;翻译为旅行家&#xff0c;是我用来实践最佳web技术的项目&#xff0c;主题是一个给旅行爱好者提供旅行信息的网站。 目标是组合现最流行的web技术&#xff0c;实现符合中国用户使用习惯的网站。 相关网址 Git&#xff1a;https://github.com/mingziday/Tr…

窗口之间传递消息的一个方法

发送窗口的代码 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Wi…