指维科技小额贷款管理系统响应返回数据的工具类(用于rest服务)

package com.erp.util;

 

import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStream;

import java.io.InputStreamReader;

import java.io.OutputStream;

import java.io.PrintWriter;

import java.io.StringWriter;

import java.net.HttpURLConnection;

import java.net.URL;

import java.net.URLEncoder;

import java.util.Map;

import java.util.Map.Entry;

import java.util.Set;

 

import javax.servlet.http.HttpServletResponse;

 

import org.apache.log4j.Logger;

 

/**

 * 

 * 类: ResponseUtil <br>

 * 描述: 响应返回数据的工具类(用于rest服务). <br>

 * 作者: administrator <br>

 * 时间: 2014-11-21 上午10:56:39

 */

public class ResponseUtil {

 

private static Logger logger = Logger.getLogger(ResponseUtil.class);

 

private static HttpURLConnection getConnection(URL url, String method,

String ctype) throws IOException {

 

HttpURLConnection conn = (HttpURLConnection) url.openConnection();

conn.setRequestMethod(method);

conn.setDoInput(true);

conn.setDoOutput(true);

conn.setRequestProperty("Accept", "text/xml,text/javascript");

conn.setRequestProperty("User-Agent", "getop");

conn.setRequestProperty("Content-Type", ctype);

return conn;

}

 

private static boolean areNotEmpty(String... values) {

 

boolean result = true;

if (values == null || values.length == 0) {

result = false;

} else {

for (String value : values) {

result &= !isEmpty(value);

}

}

return result;

}

 

private static boolean isEmpty(String value) {

 

int strLen;

if (value == null || (strLen = value.length()) == 0) {

return true;

}

for (int i = 0; i < strLen; i++) {

if ((Character.isWhitespace(value.charAt(i)) == false)) {

return false;

}

}

return true;

}

 

private static String buildQuery(Map<String, String> params, String charset)

throws IOException {

 

if (params == null || params.isEmpty()) {

return null;

}

 

StringBuilder query = new StringBuilder();

Set<Entry<String, String>> entries = params.entrySet();

boolean hasParam = false;

 

for (Entry<String, String> entry : entries) {

String name = entry.getKey();

String value = entry.getValue();

// 忽略参数名或参数值为空的参数

if (areNotEmpty(name, value)) {

if (hasParam) {

query.append("&");

} else {

hasParam = true;

}

 

query.append(name).append("=")

.append(URLEncoder.encode(value, charset));

}

}

 

return query.toString();

}

 

/**

* 执行HTTP POST请求。

* @param url

*            请求地址

* @param params

*            请求参数

* @param charset

*            字符集,如UTF-8, GBK, GB2312

* @return 响应字符串

* @throws IOException

*/

public static String doPost(String url, Map<String, String> params)

throws IOException {

 

HttpURLConnection conn = null;

OutputStream out = null;

InputStream in = null;

String rsp = null;

String charset = "UTF-8";

try {

String ctype = "application/x-www-form-urlencoded;charset="

+ charset;

conn = getConnection(new URL(url), "POST", ctype);

out = conn.getOutputStream();

if (params != null) {

String query = buildQuery(params, charset);

out.write(query.getBytes(charset));

}

in = conn.getInputStream();

rsp = getResponseAsString(in,

getResponseCharset(conn.getContentType()));

} finally {

if (in != null) {

in.close();

}

if (out != null) {

out.close();

}

if (conn != null) {

conn.disconnect();

}

}

 

return rsp;

}

 

private static String getResponseAsString(InputStream in, String charset)

throws IOException {

 

BufferedReader reader = new BufferedReader(new InputStreamReader(in,

charset));

StringWriter writer = new StringWriter();

 

char[] chars = new char[512];

int count = 0;

while ((count = reader.read(chars)) > 0) {

writer.write(chars, 0, count);

}

 

return writer.toString();

}

 

private static String getResponseCharset(String ctype) {

 

String charset = "UTF-8";

 

if (!isEmpty(ctype)) {

String[] params = ctype.split(";");

for (String param : params) {

param = param.trim();

if (param.startsWith("charset")) {

String[] pair = param.split("=", 2);

if (pair.length == 2) {

if (!isEmpty(pair[1])) {

charset = pair[1].trim();

}

}

break;

}

}

}

 

return charset;

}

 

/**

* 读取网络资源

* @throws IOException

*/

public static String readHttpResource(String url, Map<String, String> param)

throws IOException {

 

HttpURLConnection httpConn = null;

BufferedReader rd = null;

try {

StringBuilder sb = new StringBuilder();

 

StringBuilder params = new StringBuilder();

params.append("?");

Set<String> keys = param.keySet();

for (String key : keys) {

params.append(key);

params.append("=");

params.append(param.get(key));

params.append("&");

}

params.deleteCharAt(params.length() - 1);

 

URL realUrl = new URL(url + params.toString());

httpConn = (HttpURLConnection) realUrl.openConnection();

int responseCode = httpConn.getResponseCode();

if (responseCode == 200) {

rd = new BufferedReader(new InputStreamReader(

httpConn.getInputStream(), "gbk"));

String line;

while ((line = rd.readLine()) != null) {

sb.append(line);

}

return sb.toString();

}

} catch (IOException e) {

logger.error("url is :" + url);

throw e;

} finally {

if (rd != null)

try {

rd.close();

} catch (Exception e) {

}

if (httpConn != null)

try {

httpConn.disconnect();

} catch (Exception e) {

}

}

 

return null;

}

 

/**

* 读取网络资源 get 方式

* @throws IOException

*/

public static String readHttpResource(String url,

Map<String, String> param, String charset) throws IOException {

 

HttpURLConnection httpConn = null;

BufferedReader rd = null;

try {

StringBuilder sb = new StringBuilder();

 

StringBuilder params = new StringBuilder("");

if (param != null) {

params.append("?");

Set<String> keys = param.keySet();

for (String key : keys) {

params.append(key);

params.append("=");

params.append(param.get(key));

params.append("&");

}

params.deleteCharAt(params.length() - 1);

}

URL realUrl = new URL(url + params.toString());

httpConn = (HttpURLConnection) realUrl.openConnection();

int responseCode = httpConn.getResponseCode();

if (responseCode == 200) {

rd = new BufferedReader(new InputStreamReader(

httpConn.getInputStream(), charset));

String line;

while ((line = rd.readLine()) != null) {

sb.append(line);

}

return sb.toString();

}

} catch (IOException e) {

throw e;

} finally {

if (rd != null)

try {

rd.close();

} catch (Exception e) {

}

if (httpConn != null)

try {

httpConn.disconnect();

} catch (Exception e) {

}

}

 

return null;

}

 

/**

* 检测字符串

* @param value

* @return

*/

public static boolean checkString(String value) {

 

if (value != null && !"".equals(value)) {

return true;

}

return false;

}

 

public static void responseText(HttpServletResponse response, String result) {

 

responseText(response, result, null);

}

 

/**

* ajax相应

* @param response

* @param result

* @param callback

*/

public static void responseText(HttpServletResponse response,

String result, String callback) {

 

// 指定内容类型

response.setContentType("text/html;charset=UTF-8");

// 禁止缓存

response.setHeader("Pragma", "No-cache");

response.setHeader("Cache-Control", "no-cache");

response.setDateHeader("Expires", 0);

PrintWriter out = null;

try {

if (result == null) {

result = "";

}

out = response.getWriter();

if (callback != null && !"".equals(callback))

out.print(callback + "(" + result + ")");

else

out.print(result);

 

out.flush();

 

} catch (IOException e) {

e.printStackTrace();

} finally {

if (out != null) {

out.close();

}

}

}

 

}

 

本页内容版权归属为原作者,如有侵犯您的权益,请通知我们删除。
如题,大家可以参考参考 package lesson12;import java.util.ArrayList;import java.util.List;import java.util.Scanner;public class lesson12 {/** * 输入两个正整数m和n,求其最大公约数和最小公倍数 */public static void main(String args[]) {// ListInteger list=new ArrayList();Scanner scan = new S
private File file; private String fileFileName; private String picture; InputStream is = new FileInputStream(file); //引入一个IO流的输入流String root = ServletActionContext.getRequest() .getRealPath("/bookpicture"); //通过REQUEST来得到相对地址,并在后面加上/bookpictureFile f = ne

java-选择排序 - 2016-09-15 14:09:03

public class ChoiceSort {//选择排序public static void choiceSort(int[] a){int i,j,temp;int min=0;for(i=0; ia.length;i++){min=i; //将当前下标定义为最小值下标for(j=i+1;ja.length;j++){if(a[min]a[j]){/* 如果有小于当前最小值的关键字 */ min=j;/* 将此关键字的下标赋值给min */ }}if(i!=min){/* 若min不等于i,说明找

java-插入排序 - 2016-09-15 14:09:03

1、基本思想:每步将一个待排序的记录,按其顺序码大小插入到前面已经排序的字序列的合适位置(从后向前找到合适位置后),直到全部插入排序完为止。 /** * 插入排序 * * 从第一个元素开始,该元素可以认为已经被排序 * 取出下一个元素,在已经排序的元素序列中从后向前扫描 * 如果该元素(已排序)大于新元素,将该元素移到下一位置 * 重复步骤3,直到找到已排序的元素小于或者等于新元素的位置 * 将新元素插入到该位置中 * 重复步骤2 * @param numbers 待排序数组 */ public stati

JAVA和C++区别 - 2016-09-15 14:09:03

Java和C++都是面向对象语言。也就是说,它们都能够实现面向对象思想(封装,继乘,多态)。而由于c++为了照顾大量的C语言使用者, 而兼容了C,使得自身仅仅成为了带类的C语言,多多少少影响了其面向对象的彻底性!JAVA则是完全的面向对象语言,它句法更清晰,规模更小,更易学。它是在对多种程序设计语言进行了深入细致研究的基础上,据弃了其他语言的不足之处,从根本上解决了c++的固有缺陷。 Java和c++的相似之处多于不同之处,但两种语言问几处主要的不同使得Java更容易学习,兄弟连JavaEE培训  ,并且编

配置文件的读取与写入 - 2016-09-15 14:09:03

读取配置文件: public static void main(String[] args) {Properties prop = new Properties();try {InputStream in = new BufferedInputStream(new FileInputStream("src/test/test.properties"));// 读取属性文件a.propertiesprop.load(in); // /加载属性列表System.out.println(prop.getPrope

android eclipse错误集合 - 2016-09-15 14:09:03

   1.  devices.xml 错误      [2016-09-14 15:20:11 - Android SDK] Error when loading the SDK:   Error: Error parsing D:\Users\shouzhuo3\AppData\Local\Android\sdk\system-images\android-22\android-wear\x86\devices.xml cvc-complex-type.2.4.d: 发现了以元素 'd:skin' 开头
这篇文章已经是有数年“网龄”的老文,不过在今天看来仍然经典。如何学习Java?本篇文章可以说也是面对编程初学者的一篇指导文章,其中对于如何学习Java的步骤的介绍,很多也适用于开发领域其他技能的学习。 【在原先《学好Java之我见》的基础上重新整理而成】 Java - 近10年来计算机软件发展过程中的传奇,其在众多开发者心中的地位就如“屠龙刀”、“倚天剑”。 我去年加入了一个java培训班,好在人品比较不错,没有被坑,学到了很多东西,也让我少走了很多弯路,Java是个平台,我只想说说我对学好Java的一点
今年我一直在思考web开发里的前后端分离的问题,到了现在也颇有点心得了,随着这个问题的深入,再加以现在公司很多web项目的控制层的技术框架由struts2迁移到springMVC,我突然有了一个新的疑问无法得到正确的解释,为什么我们现在做java的web开发,会选择struts2或者springMVC这样的框架,而不是使用servlet加jsp这样的技术呢?特别是现在我们web的前端页面都是使用velocity这样的模板语言进行开发,抛弃了jsp,这样的选择又会给我们java的web开发带来什么样的好处,延

简单的poi导出 - 2016-09-14 14:09:04

@Override     public void exportXlsNotBill(HttpServletResponse response, TSBaseUser user) throws UnsupportedEncodingException {         // 第一步,创建一个webbook,对应一个Excel文件         HSSFWorkbook wb = new HSSFWorkbook();         // 第二步,在webbook中添加一个sheet,对应Excel文件