java httptools_HttpTool.java 【暂保留】

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 classHttpTool {public static voidmain(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", 3000,3000);//大家最终只要使用这一句代码就可调用//_________________________________________________________________________________________

}/**

* 发送报文

*

* @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,intreadTimeout) throws IOException{

URL url= null;

HttpURLConnection conn= null;

ByteArrayOutputStream byteOut= null;

BufferedReader readInfo= null;

StringBuffer strBuilder=newStringBuffer();

OutputStreamout = null;try{

System.out.println("请求时间:【"+new Date()+"】");

System.out.println("请求地址:【"+urlStr+"】");

System.out.println("请求报文:【"+requestData+"】");

url= newURL(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 = newByteArrayOutputStream();

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) {throwe;

}catch(MalformedURLException e) {throwe;

}catch(IOException e) {throwe;

}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());

}

}returnstrBuilder.toString();

}/**

*

* @param filePath 文件绝对路径

* @param encoding 读取文件的编码

* @return

* @author King

* @throws Exception*/

public staticString readStringFromFile(String filePath,String encoding) {

File file= newFile(filePath);

System.out.println("文件"+filePath+"存在与否?:"+ file.exists()+"\n");

String tempLine= null;

String retStr= "";

InputStreamReader isr= null;//way1://FileReader fr = null;//way2

StringBuilder sb = newStringBuilder();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");returnretStr;

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值