备注

在 java tool util 工具类 中已存在

HttpTool.java

该类为java源生态的http 请求工具,不依赖第三方jar包 ,即插即用.

package kingtool;

import java.io.BufferedReader;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.UnsupportedEncodingException;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.Date;
/**
* http post发送工具
* @author King
*
*/
public class HttpTool {
public static void main(String[] args) throws Exception {
String requestUrl = "http://192.168.1.2/httpserver";
String requestData = readStringFromFile("C:\\Users\\King\\Desktop\\connectANSI.xml","GBK");//有乱码,请修改指定编码
//_________________________________________________________________________________________
String returnData=HttpTool.sendRequestData("telesales",requestData, requestUrl,"GBK","GBK", ,);//大家最终只要使用这一句代码就可调用
//_________________________________________________________________________________________
} /**
* 发送报文
*
* @param appName 应用系统英文名
* @param requestData 请求报文
* @param urlStr 请求地址
* @param connectionTimeout 链接超时时间 1000代表 1秒
* @param readTimeout 读取超时时间 1000代表1秒
* @return
* @throws IOException
* @author King
*/
public static String sendRequestData(String appName,String requestData, String urlStr,String sendEncoding,String recvEncoding, int connectionTimeout,int readTimeout) throws IOException{
URL url = null;
HttpURLConnection conn = null;
ByteArrayOutputStream byteOut = null;
BufferedReader readInfo = null;
StringBuffer strBuilder=new StringBuffer();
OutputStream out = null;
try {
System.out.println("请求时间:【"+new Date()+"】");
System.out.println("请求地址:【"+urlStr+"】");
System.out.println("请求报文:【"+requestData+"】");
url = new URL(urlStr);
conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("POST");
conn.setRequestProperty("SOAPAction", "\"\"");
conn.setRequestProperty("Accept", "application/soap+xml, application/dime, multipart/related, text/*");
//如果没有下面这一行代码,服务器端可以通过request.getParameter()和request.getInputStream()都接收到相同信息
//conn.setRequestProperty("content-type", "text/xml;charset=GBK");
//如果 有上面这一行代码,服务器端仅能通过request.getInputStream()接收信息
conn.setRequestProperty("User-Agent", "Axis/1.4");
conn.setRequestProperty("Cache-Control", "no-cache");
conn.setRequestProperty("appName", appName);//各系统需要设置应用系统名 appName,如电销为telesales
conn.setUseCaches(false); //忽略缓存
conn.setDoOutput(true); //使用 URL 连接进行输出
conn.setDoInput(true); //使用 URL 连接进行输入
conn.setConnectTimeout(connectionTimeout);//链接超时
conn.setReadTimeout(readTimeout);//读取超时
conn.connect();//建立链接
byteOut = new ByteArrayOutputStream();
byteOut.write(requestData.getBytes(sendEncoding));//以指定编码发送,如果有乱码,修改之
byte[] buf = byteOut.toByteArray();
out = conn.getOutputStream();
out.write(buf);
out.flush();
if (HttpURLConnection.HTTP_OK == conn.getResponseCode()) {//正确返回
readInfo = new BufferedReader(new java.io.InputStreamReader(conn.getInputStream(),recvEncoding));//以指定编码读取返回信息,如果有乱码,修改之
String line = null;
while ((line = readInfo.readLine()) != null) {
strBuilder.append(line);
}
} else {//没有正确返回
readInfo = new BufferedReader(new java.io.InputStreamReader(conn.getInputStream(),recvEncoding));//以指定编码读取返回信息,如果有乱码,修改之
System.out.println("出现异常,返回报文:【"+readInfo+"】");
throw new IOException("url请求出现问题,返回编码:" + conn.getResponseCode());
}
System.out.println("返回时间:【"+new Date()+"】");
System.out.println("返回报文:【"+strBuilder.toString()+"】");
} catch (UnsupportedEncodingException e) {
throw e;
} catch (MalformedURLException e) {
throw e;
} catch (IOException e) {
throw e;
}finally {
try{
if (readInfo != null) {
readInfo.close();
}
if (byteOut != null) {
byteOut.close();
}
if (out != null) {
out.close();
}
if (conn != null) {
conn.disconnect();
}
}catch(Exception e){
System.out.println("关闭链接出错!"+e.getMessage());
} }
return strBuilder.toString();
} /**
*
* @param filePath 文件绝对路径
* @param encoding 读取文件的编码
* @return
* @author King
* @throws Exception
*/
public static String readStringFromFile(String filePath,String encoding) {
File file = new File(filePath);
System.out.println("文件 "+filePath+"存在与否?: "+ file.exists()+"\n");
String tempLine = null;
String retStr = "";
InputStreamReader isr = null;//way1:
// FileReader fr = null;//way2
StringBuilder sb = new StringBuilder();
try {
if(file.exists()){
isr = new InputStreamReader(new FileInputStream(file),encoding);//way1:
// fr = new FileReader(file);//way2
BufferedReader br = new BufferedReader(isr);//way1:
// BufferedReader br = new BufferedReader(fr);;//way2:
tempLine = br.readLine();
while( tempLine != null ){
sb.append(tempLine);
tempLine = br.readLine();
}
retStr = sb.toString();
}
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}finally{
try{
if(isr!=null)
isr.close();
}catch(Exception e){
e.printStackTrace();
}
}
System.out.println("读到的文件内容如下:");
System.out.println(retStr+"\n");
return retStr;
}
}

HttpTool.java 【暂保留】的更多相关文章

  1. HttpTool.java(在java tool util工具类中已存在) 暂保留

    HttpTool.java 该类为java源生态的http 请求工具,不依赖第三方jar包 ,即插即用. package kingtool; import java.io.BufferedReader ...

  2. Java float保留两位小数或多位小数

    Java float保留两位小数或多位小数 方法1:用Math.round计算,这里返回的数字格式的.    float price=89.89;int itemNum=3;float totalPr ...

  3. java double保留小数点的零的问题,java保留小数点问题

    1.用DecimalFormat格式化,DecimalFormat df=new DecimalFormat("0.00"); System.out.println(df.form ...

  4. Java四舍五入 保留小数

    java 四舍五入保留小数   // 方式一: double f = 3.1516; BigDecimal b = new BigDecimal(f); double f1 = b.setScale( ...

  5. JAVA除法保留小数点后两位的两种方法 Java Math的 floor,round和ceil的总结

    floor 返回不大于的最大整数 round 则是4舍5入的计算,入的时候是到大于它的整数round方法,它表示“四舍五入”,算法为Math.floor(x+0.5),即将原来的数字加上0.5后再向下 ...

  6. java中保留几位小数

    public class NumUtils { /** * 保留两位小数 * * @param d * @return */ public static String get2Wei(double d ...

  7. BigDecimal 高精度计算 熟悉扩展,java除法保留小数问题

    java保留两位小数问题: 方式一: 四舍五入  double   f   =   111231.5585;  BigDecimal   b   =   new   BigDecimal(f);  d ...

  8. Java指定保留小数位数的方法

    package com.qiyuan.util; import java.math.BigDecimal; import java.math.RoundingMode; import java.tex ...

  9. java double 保留两位小数

    java保留两位小数问题: 方式一: 四舍五入  double   f   =   111231.5585;  BigDecimal   b   =   new   BigDecimal(f);  d ...

随机推荐

  1. Integrating Jenkins and Apache Tomcat for Continuous Deployment

    Installation via Maven WAR Overlay - Jenkins - Jenkins Wikihttps://wiki.jenkins.io/display/JENKINS/I ...

  2. Sub-Processes and Call Activities

    https://www.activiti.org/userguide/#bpmnCallActivity http://www.flowable.org/docs/userguide/index.ht ...

  3. Redis应用一例(存证数量用计数器实现)

    public Long getCreationCounter() { String host =PropertyUtils.getPropertyValue("redis.server.ho ...

  4. Node json

    //1:加载相关模块 http express mysqlconst http = require("http");const mysql = require("mysq ...

  5. Linux基础学习(6)--Linux软件安装

    第六章——Linux软件安装 一.软件包管理简介 1.软件包分类: (1)源码包:脚本安装包 (2)二进制包(RPM包.系统默认包) 2.源码包: (1)源码包的优点:开源,如果有足够的能力,可以修改 ...

  6. html css類和css()

    addClass():一個或者多個元素添加一個或者多個類 $("元素一,元素2,元素3").addClass(“類名1  類名2”) removeClass():一個或者多個元素刪 ...

  7. ImportError: cannot import name descriptor_pb2

    重新编译protobuf 下载地址:https://github.com/google/protobuf $cd /path/protobuf/python $python setup.py buil ...

  8. 图之强连通、强连通图、强连通分量 Tarjan算法

    原文地址:https://blog.csdn.net/qq_16234613/article/details/77431043 一.解释 在有向图G中,如果两个顶点间至少存在一条互相可达路径,称两个顶 ...

  9. hdu5521(Meeting)spfa 层次网络最短路

    题意:给出几个集合,每个集合中有Si个点 且任意两个点的距离为ti,现在要求两个人分别从1和n出发,问最短多长时间才能遇到,且给出这些可能的相遇点; 取两个人到达某点时所用时间大的值 然后取最小的   ...

  10. 07 zabbix之map拓扑标签中macro应用

    zabbix之map拓扑标签中macro应用 请先预习网地图map : 请点击 macro官方文档介绍 : 请点击 1.  Map labels(拓扑图标签)主要注意以下Macros(宏):  MAC ...