这个应该是最实用的工具类之一了
这个HttpUtil工具类写的还是比较全面的, 日常使用中的使用场景都涵盖了
文件上传, json上传, xml上传, form上传等, 使用方便性能大为提高
包含:
-
发送GET请求
-
发送GET请求 包含map参数
-
发送GET请求 包含"map参数"和"请求属性"
-
发送POST请求
-
发送POST请求 包含map参数
-
发送POST请求 包含"map参数"和"请求属性"
-
发送请求, 得到响应对象 HttpRespons
-
直接通过HTTP协议提交数据到服务器,实现面表单提交功能, 包含文件上传
-
发送xml数据
-
发送 Json数据
-
-
import java.io.BufferedReader;
-
import java.io.ByteArrayOutputStream;
-
import java.io.IOException;
-
import java.io.InputStream;
-
import java.io.InputStreamReader;
-
import java.io.OutputStream;
-
import java.io.OutputStreamWriter;
-
import java.net.HttpURLConnection;
-
import java.net.InetAddress;
-
import java.net.Socket;
-
import java.net.URL;
-
import java.net.URLConnection;
-
import java.net.URLEncoder;
-
import java.nio.charset.Charset;
-
import java.util.List;
-
import java.util.Map;
-
import java.util.Map.Entry;
-
import java.util.Set;
-
import java.util.Vector;
-
-
import org.apache.http.HttpStatus;
-
import org.apache.http.client.config.RequestConfig;
-
import org.apache.http.client.methods.CloseableHttpResponse;
-
import org.apache.http.client.methods.HttpPost;
-
import org.apache.http.entity.mime.MultipartEntityBuilder;
-
import org.apache.http.impl.client.CloseableHttpClient;
-
import org.apache.http.impl.client.HttpClients;
-
import org.apache.http.util.EntityUtils;
-
import org.mogujie.iip.commons.pojo.FormFile;
-
import org.mogujie.iip.commons.pojo.HttpRespons;
-
-
import com.alibaba.fastjson.JSON;
-
-
/**
-
* Created by fengzhen on 16/6/27.
-
*/
-
public class HttpUtil {
-
-
private String defaultContentEncoding;
-
-
public HttpUtil() {
-
this.defaultContentEncoding = Charset.defaultCharset().name();
-
}
-
-
/**
-
* 发送GET请求
-
*
-
* @param urlString URL地址
-
* @return 响应对象
-
* @throws IOException
-
*/
-
public HttpRespons sendGet(String urlString) throws IOException {
-
return this.send(urlString, "GET", null, null);
-
}
-
-
/**
-
* 发送GET请求
-
*
-
* @param urlString URL地址
-
* @param params 参数集合
-
* @return 响应对象
-
* @throws IOException
-
*/
-
public HttpRespons sendGet(String urlString, Map<String, String> params) throws IOException {
-
return this.send(urlString, "GET", params, null);
-
}
-
-
/**
-
* 发送GET请求
-
*
-
* @param urlString URL地址
-
* @param params 参数集合
-
* @param propertys 请求属性
-
* @return 响应对象
-
* @throws IOException
-
*/
-
public HttpRespons sendGet(String urlString, Map<String, String> params, Map<String, String> propertys)
-
throws IOException {
-
return this.send(urlString, "GET", params, propertys);
-
}
-
-
/**
-
* 发送POST请求
-
*
-
* @param urlString URL地址
-
* @return 响应对象
-
* @throws IOException
-
*/
-
public HttpRespons sendPost(String urlString) throws IOException {
-
return this.send(urlString, "POST", null, null);
-
}
-
-
/**
-
* 发送POST请求
-
*
-
* @param urlString URL地址
-
* @param params 参数集合
-
* @return 响应对象
-
* @throws IOException
-
*/
-
public HttpRespons sendPost(String urlString, Map<String, String> params) throws IOException {
-
return this.send(urlString, "POST", params, null);
-
}
-
-
/**
-
* 发送POST请求
-
*
-
* @param urlString URL地址
-
* @param params 参数集合
-
* @param propertys 请求属性
-
* @return 响应对象
-
* @throws IOException
-
*/
-
public HttpRespons sendPost(String urlString, Map<String, String> params, Map<String, String> propertys)
-
throws IOException {
-
return this.send(urlString, "POST", params, propertys);
-
}
-
-
/**
-
* 发送HTTP请求
-
*
-
* @param urlString 地址
-
* @param method get/post
-
* @param parameters 添加由键值对指定的请求参数
-
* @param propertys 添加由键值对指定的一般请求属性
-
* @return 响映对象
-
* @throws IOException
-
*/
-
private HttpRespons send(String urlString, String method, Map<String, String> parameters,
-
Map<String, String> propertys) throws IOException {
-
HttpURLConnection urlConnection = null;
-
-
if (method.equalsIgnoreCase("GET") && parameters != null) {
-
StringBuffer param = new StringBuffer();
-
int i = 0;
-
for (String key : parameters.keySet()) {
-
if (i == 0)
-
param.append("?");
-
else
-
param.append("&");
-
param.append(key).append("=").append(parameters.get(key));
-
i++;
-
}
-
urlString += param;
-
}
-
-
URL url = new URL(urlString);
-
urlConnection = (HttpURLConnection) url.openConnection();
-
urlConnection.setRequestMethod(method);
-
urlConnection.setDoOutput(true);
-
urlConnection.setDoInput(true);
-
urlConnection.setUseCaches(false);
-
-
if (propertys != null)
-
for (String key : propertys.keySet()) {
-
urlConnection.addRequestProperty(key, propertys.get(key));
-
}
-
-
if (method.equalsIgnoreCase("POST") && parameters != null) {
-
StringBuffer param = new StringBuffer();
-
for (String key : parameters.keySet()) {
-
param.append("&");
-
param.append(key).append("=").append(parameters.get(key));
-
}
-
urlConnection.getOutputStream().write(param.toString().getBytes());
-
urlConnection.getOutputStream().flush();
-
urlConnection.getOutputStream().close();
-
}
-
return makeContent(urlString, urlConnection);
-
}
-
-
private static HttpRespons makeContent(String urlString, HttpURLConnection urlConnection) throws IOException {
-
return makeContent(urlString, urlConnection, null);
-
}
-
-
/**
-
* 得到响应对象
-
*
-
* @param urlConnection
-
* @return 响应对象
-
* @throws IOException
-
*/
-
private static HttpRespons makeContent(String urlString, HttpURLConnection urlConnection, String ecod) throws IOException {
-
HttpRespons httpResponser = new HttpRespons();
-
try {
-
InputStream in = urlConnection.getInputStream();
-
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(in));
-
List<String> contentCollection = new Vector<String>();
-
StringBuffer temp = new StringBuffer();
-
String line = bufferedReader.readLine();
-
while (line != null) {
-
contentCollection.add(line);
-
temp.append(line).append("\r\n");
-
line = bufferedReader.readLine();
-
}
-
bufferedReader.close();
-
if(StringUtil.isEmpty(ecod)) {
-
ecod = urlConnection.getContentEncoding();
-
if (ecod == null)
-
ecod = "UTF-8";
-
}
-
httpResponser.setUrlString(urlString);
-
httpResponser.setDefaultPort(urlConnection.getURL().getDefaultPort());
-
httpResponser.setFile(urlConnection.getURL().getFile());
-
httpResponser.setHost(urlConnection.getURL().getHost());
-
httpResponser.setPath(urlConnection.getURL().getPath());
-
httpResponser.setPort(urlConnection.getURL().getPort());
-
httpResponser.setProtocol(urlConnection.getURL().getProtocol());
-
httpResponser.setQuery(urlConnection.getURL().getQuery());
-
httpResponser.setRef(urlConnection.getURL().getRef());
-
httpResponser.setUserInfo(urlConnection.getURL().getUserInfo());
-
httpResponser.setContent(new String(temp.toString().getBytes(), ecod));
-
httpResponser.setContentEncoding(ecod);
-
httpResponser.setCode(urlConnection.getResponseCode());
-
httpResponser.setMessage(urlConnection.getResponseMessage());
-
httpResponser.setContentType(urlConnection.getContentType());
-
httpResponser.setMethod(urlConnection.getRequestMethod());
-
httpResponser.setConnectTimeout(urlConnection.getConnectTimeout());
-
httpResponser.setReadTimeout(urlConnection.getReadTimeout());
-
return httpResponser;
-
} catch (IOException e) {
-
throw e;
-
} finally {
-
if (urlConnection != null)
-
urlConnection.disconnect();
-
}
-
}
-
-
/**
-
* 默认的响应字符集
-
*/
-
public String getDefaultContentEncoding() {
-
return this.defaultContentEncoding;
-
}
-
-
-
/**
-
* 发送GET请求
-
* @param url
-
* @param params
-
* @param headers
-
* @return
-
* @throws Exception
-
*/
-
public static URLConnection sendGetRequest(String url,
-
Map<String, String> params, Map<String, String> headers)
-
throws Exception {
-
StringBuilder buf = new StringBuilder(url);
-
Set<Entry<String, String>> entrys = null;
-
// 如果是GET请求,则请求参数在URL中
-
if (params != null && !params.isEmpty()) {
-
buf.append("?");
-
entrys = params.entrySet();
-
for (Map.Entry<String, String> entry : entrys) {
-
buf.append(entry.getKey()).append("=")
-
.append(URLEncoder.encode(entry.getValue(), "UTF-8"))
-
.append("&");
-
}
-
buf.deleteCharAt(buf.length() - 1);
-
}
-
URL url1 = new URL(buf.toString());
-
HttpURLConnection conn = (HttpURLConnection) url1.openConnection();
-
conn.setRequestMethod("GET");
-
// 设置请求头
-
if (headers != null && !headers.isEmpty()) {
-
entrys = headers.entrySet();
-
for (Map.Entry<String, String> entry : entrys) {
-
conn.setRequestProperty(entry.getKey(), entry.getValue());
-
}
-
}
-
conn.getResponseCode();
-
return conn;
-
}
-
/**
-
* 发送POST请求
-
* @param url
-
* @param params
-
* @param headers
-
* @return
-
* @throws Exception
-
*/
-
public static URLConnection sendPostRequest(String url,
-
Map<String, String> params, Map<String, String> headers)
-
throws Exception {
-
StringBuilder buf = new StringBuilder();
-
Set<Entry<String, String>> entrys = null;
-
// 如果存在参数,则放在HTTP请求体,形如name=aaa&age=10
-
if (params != null && !params.isEmpty()) {
-
entrys = params.entrySet();
-
for (Map.Entry<String, String> entry : entrys) {
-
buf.append(entry.getKey()).append("=")
-
.append(URLEncoder.encode(entry.getValue(), "UTF-8"))
-
.append("&");
-
}
-
buf.deleteCharAt(buf.length() - 1);
-
}
-
URL url1 = new URL(url);
-
HttpURLConnection conn = (HttpURLConnection) url1.openConnection();
-
conn.setRequestMethod("POST");
-
conn.setDoOutput(true);
-
OutputStream out = conn.getOutputStream();
-
out.write(buf.toString().getBytes("UTF-8"));
-
if (headers != null && !headers.isEmpty()) {
-
entrys = headers.entrySet();
-
for (Map.Entry<String, String> entry : entrys) {
-
conn.setRequestProperty(entry.getKey(), entry.getValue());
-
}
-
}
-
conn.getResponseCode(); // 为了发送成功
-
return conn;
-
}
-
/**
-
* 直接通过HTTP协议提交数据到服务器,实现如下面表单提交功能:
-
*
-
-
-
-
-
-
* @param path 上传路径(注:避免使用localhost或127.0.0.1这样的路径测试,因为它会指向手机模拟器,你可以使用或这样的路径测试)
-
* @param params 请求参数 key为参数名,value为参数值
-
* @param files 上传文件
-
*/
-
public static boolean uploadFiles(String path, Map<String, String> params, FormFile[] files) throws Exception{
-
final String BOUNDARY = "---------------------------7da2137580612"; //数据分隔线
-
final String endline = "--" + BOUNDARY + "--\r\n";//数据结束标志
-
-
int fileDataLength = 0;
-
if(files!=null&&files.length!=0){
-
for(FormFile uploadFile : files){//得到文件类型数据的总长度
-
StringBuilder fileExplain = new StringBuilder();
-
fileExplain.append("--");
-
fileExplain.append(BOUNDARY);
-
fileExplain.append("\r\n");
-
fileExplain.append("Content-Disposition: form-data;name=\""+ uploadFile.getParameterName()+"\";filename=\""+ uploadFile.getFilname() + "\"\r\n");
-
fileExplain.append("Content-Type: "+ uploadFile.getContentType()+"\r\n\r\n");
-
fileExplain.append("\r\n");
-
fileDataLength += fileExplain.length();
-
if(uploadFile.getInStream()!=null){
-
fileDataLength += uploadFile.getFile().length();
-
}else{
-
fileDataLength += uploadFile.getData().length;
-
}
-
}
-
}
-
StringBuilder textEntity = new StringBuilder();
-
if(params!=null&&!params.isEmpty()){
-
for (Map.Entry<String, String> entry : params.entrySet()) {//构造文本类型参数的实体数据
-
textEntity.append("--");
-
textEntity.append(BOUNDARY);
-
textEntity.append("\r\n");
-
textEntity.append("Content-Disposition: form-data; name=\""+ entry.getKey() + "\"\r\n\r\n");
-
textEntity.append(entry.getValue());
-
textEntity.append("\r\n");
-
}
-
}
-
//计算传输给服务器的实体数据总长度
-
int dataLength = textEntity.toString().getBytes().length + fileDataLength + endline.getBytes().length;
-
-
URL url = new URL(path);
-
int port = url.getPort()==-1 ? 80 : url.getPort();
-
Socket socket = new Socket(InetAddress.getByName(url.getHost()), port);
-
OutputStream outStream = socket.getOutputStream();
-
//下面完成HTTP请求头的发送
-
String requestmethod = "POST "+ url.getPath()+" HTTP/1.1\r\n";
-
outStream.write(requestmethod.getBytes());
-
String accept = "Accept: image/gif, image/jpeg, image/pjpeg, image/pjpeg, application/x-shockwave-flash, application/xaml+xml, application/vnd.ms-xpsdocument, application/x-ms-xbap, application/x-ms-application, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*\r\n";
-
outStream.write(accept.getBytes());
-
String language = "Accept-Language: zh-CN\r\n";
-
outStream.write(language.getBytes());
-
String contenttype = "Content-Type: multipart/form-data; boundary="+ BOUNDARY+ "\r\n";
-
outStream.write(contenttype.getBytes());
-
String contentlength = "Content-Length: "+ dataLength + "\r\n";
-
outStream.write(contentlength.getBytes());
-
String alive = "Connection: Keep-Alive\r\n";
-
outStream.write(alive.getBytes());
-
String host = "Host: "+ url.getHost() +":"+ port +"\r\n";
-
outStream.write(host.getBytes());
-
//写完HTTP请求头后根据HTTP协议再写一个回车换行
-
outStream.write("\r\n".getBytes());
-
//把所有文本类型的实体数据发送出来
-
outStream.write(textEntity.toString().getBytes());
-
//把所有文件类型的实体数据发送出来
-
if(files!=null&&files.length!=0){
-
for(FormFile uploadFile : files){
-
StringBuilder fileEntity = new StringBuilder();
-
fileEntity.append("--");
-
fileEntity.append(BOUNDARY);
-
fileEntity.append("\r\n");
-
fileEntity.append("Content-Disposition: form-data;name=\""+ uploadFile.getParameterName()+"\";filename=\""+ uploadFile.getFilname() + "\"\r\n");
-
fileEntity.append("Content-Type: "+ uploadFile.getContentType()+"\r\n\r\n");
-
outStream.write(fileEntity.toString().getBytes());
-
if(uploadFile.getInStream()!=null){
-
byte[] buffer = new byte[1024];
-
int len = 0;
-
while((len = uploadFile.getInStream().read(buffer, 0, 1024))!=-1){
-
outStream.write(buffer, 0, len);
-
}
-
uploadFile.getInStream().close();
-
}else{
-
outStream.write(uploadFile.getData(), 0, uploadFile.getData().length);
-
}
-
outStream.write("\r\n".getBytes());
-
}
-
}
-
//下面发送数据结束标志,表示数据已经结束
-
outStream.write(endline.getBytes());
-
BufferedReader reader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
-
-
if(reader.readLine().indexOf("200")==-1){//读取web服务器返回的数据,判断请求码是否为200,如果不是200,代表请求失败
-
outStream.flush();
-
outStream.close();
-
reader.close();
-
socket.close();
-
return false;
-
}
-
outStream.flush();
-
outStream.close();
-
reader.close();
-
socket.close();
-
return true;
-
}
-
/**
-
* 提交数据到服务器
-
* @param path 上传路径(注:避免使用localhost或127.0.0.1这样的路径测试,因为它会指向手机模拟器,你可以使用或这样的路径测试)
-
* @param params 请求参数 key为参数名,value为参数值
-
* @param file 上传文件
-
*/
-
public static boolean uploadFile(String path, Map<String, String> params, FormFile file) throws Exception{
-
return uploadFiles(path, params, new FormFile[]{file});
-
}
-
/**
-
* 将输入流转为字节数组
-
* @param inStream
-
* @return
-
* @throws Exception
-
*/
-
public static byte[] read2Byte(InputStream inStream)throws Exception{
-
ByteArrayOutputStream outSteam = new ByteArrayOutputStream();
-
byte[] buffer = new byte[1024];
-
int len = 0;
-
while( (len = inStream.read(buffer)) !=-1 ){
-
outSteam.write(buffer, 0, len);
-
}
-
outSteam.close();
-
inStream.close();
-
return outSteam.toByteArray();
-
}
-
/**
-
* 将输入流转为字符串
-
* @param inStream
-
* @return
-
* @throws Exception
-
*/
-
public static String read2String(InputStream inStream)throws Exception{
-
ByteArrayOutputStream outSteam = new ByteArrayOutputStream();
-
byte[] buffer = new byte[1024];
-
int len = 0;
-
while( (len = inStream.read(buffer)) !=-1 ){
-
outSteam.write(buffer, 0, len);
-
}
-
outSteam.close();
-
inStream.close();
-
return new String(outSteam.toByteArray(),"UTF-8");
-
}
-
/**
-
* 发送xml数据
-
* @param path 请求地址
-
* @param xml xml数据
-
* @param encoding 编码
-
* @return
-
* @throws Exception
-
*/
-
public static byte[] postXml(String path, String xml, String encoding) throws Exception{
-
byte[] data = xml.getBytes(encoding);
-
URL url = new URL(path);
-
HttpURLConnection conn = (HttpURLConnection)url.openConnection();
-
conn.setRequestMethod("POST");
-
conn.setDoOutput(true);
-
conn.setRequestProperty("Content-Type", "text/xml; charset="+ encoding);
-
conn.setRequestProperty("Content-Length", String.valueOf(data.length));
-
conn.setConnectTimeout(5 * 1000);
-
OutputStream outStream = conn.getOutputStream();
-
outStream.write(data);
-
outStream.flush();
-
outStream.close();
-
if(conn.getResponseCode()==200){
-
return read2Byte(conn.getInputStream());
-
}
-
return null;
-
}
-
-
/**
-
* 设置默认的响应字符集
-
*/
-
public void setDefaultContentEncoding(String defaultContentEncoding) {
-
this.defaultContentEncoding = defaultContentEncoding;
-
}
-
-
/**
-
* 发送post请求
-
* @param url 地址
-
* @param params 参数
-
* @return 请求资源返回的值
-
*/
-
public static String postForm(String url, Map<String, Object> params, int... timeout) {
-
String charset = "UTF-8";
-
-
CloseableHttpClient httpClient = HttpClients.createDefault();
-
HttpPost httpPost = new HttpPost(url);
-
int cTimeout = 3000;
-
// 设置请求和传输超时时间
-
if (timeout != null && timeout.length > 0) {
-
cTimeout = timeout[0];
-
}
-
RequestConfig requestConfig = RequestConfig.custom().setSocketTimeout(cTimeout)
-
.setConnectTimeout(cTimeout).build();
-
httpPost.setConfig(requestConfig);
-
-
CloseableHttpResponse httpResponse = null;
-
try {
-
if (params != null && params.isEmpty() == false) {
-
-
MultipartEntityBuilder builder = MultipartEntityBuilder.create();
-
//builder.setCharset(Charset.forName(charset));
-
-
if (params != null && !params.isEmpty()) {
-
for (Map.Entry<String, Object> entry : params.entrySet()) {//构造文本类型参数的实体数据
-
builder.addTextBody(entry.getKey(), entry.getValue().toString());//增加文本内容
-
}
-
}
-
-
httpPost.setEntity(builder.build());
-
}
-
-
httpResponse = httpClient.execute(httpPost);
-
if (httpResponse.getStatusLine().getStatusCode() != HttpStatus.SC_OK) {
-
System.out.println(url + ": " + httpResponse.getStatusLine().getStatusCode());
-
}
-
return EntityUtils.toString(httpResponse.getEntity(), charset);
-
} catch (Exception ex) {
-
System.out.println(url);
-
System.out.println(JSON.toJSONString(params));
-
ex.printStackTrace();
-
return null;
-
} finally {
-
try {
-
if (httpResponse != null) {
-
httpResponse.close();
-
}
-
httpClient.close();
-
} catch (Exception ex) {
-
System.out.println(url + ": " + ex.getMessage());
-
}
-
}
-
}
-
-
/**
-
* post Json
-
* @param strURL
-
* @param params
-
* @return
-
*/
-
public static String postJSON(String strURL, Map<String, Object> params) {
-
-
String paramsStr = JSON.toJSONString(params);
-
-
try {
-
URL url = new URL(strURL);// 创建连接
-
HttpURLConnection connection = (HttpURLConnection) url
-
.openConnection();
-
connection.setDoOutput(true);
-
connection.setDoInput(true);
-
connection.setUseCaches(false);
-
connection.setInstanceFollowRedirects(true);
-
connection.setRequestMethod("POST"); // 设置请求方式
-
connection.setRequestProperty("Accept", "application/json"); // 设置接收数据的格式
-
connection.setRequestProperty("Content-Type", "application/json"); // 设置发送数据的格式
-
connection.connect();
-
OutputStreamWriter out = new OutputStreamWriter(
-
connection.getOutputStream(), "UTF-8"); // utf-8编码
-
out.append(paramsStr);
-
out.flush();
-
out.close();
-
// 读取响应
-
int length = (int) connection.getContentLength();// 获取长度
-
InputStream is = connection.getInputStream();
-
if (length != -1) {
-
byte[] data = new byte[length];
-
byte[] temp = new byte[512];
-
int readLen = 0;
-
int destPos = 0;
-
while ((readLen = is.read(temp)) > 0) {
-
System.arraycopy(temp, 0, data, destPos, readLen);
-
destPos += readLen;
-
}
-
String result = new String(data, "UTF-8"); // utf-8编码
-
System.out.println(result);
-
return result;
-
}
-
} catch (IOException e) {
-
System.out.println(strURL);
-
System.out.println(paramsStr);
-
e.printStackTrace();
-
}
-
return "error"; // 自定义错误信息
-
}
-
-
public static String postUrl(String urlStr, Map<String, Object> params) {
-
return postUrl(urlStr, params, null);
-
}
-
-
/**
-
* post Url
-
* @param urlStr
-
* @param params
-
* @return
-
*/
-
public static String postUrl(String urlStr, Map<String, Object> params, String encode) {
-
-
try {
-
-
URL url = new URL(urlStr);
-
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
-
urlConnection.setRequestMethod("POST");
-
urlConnection.setDoOutput(true);
-
urlConnection.setDoInput(true);
-
urlConnection.setUseCaches(false);
-
-
if (params != null) {
-
-
StringBuffer param = new StringBuffer();
-
-
for (String key : params.keySet()) {
-
if(params.get(key) instanceof List){
-
@SuppressWarnings("unchecked")
-
List<Object> list = (List<Object>) params.get(key);
-
for (Object str : list){
-
param.append("&");
-
param.append(key).append("=").append(str);
-
}
-
} else {
-
param.append("&");
-
param.append(key).append("=").append(params.get(key));
-
}
-
}
-
-
urlConnection.getOutputStream().write(param.toString().getBytes());
-
urlConnection.getOutputStream().flush();
-
urlConnection.getOutputStream().close();
-
}
-
-
HttpRespons respons = makeContent(urlStr, urlConnection, encode);
-
-
if (respons.getCode() != 200) {
-
System.out.println(urlStr);
-
System.out.println(JSON.toJSONString(params));
-
System.out.println(respons.getContent());
-
}
-
-
return respons.getContent();
-
-
} catch (Exception ex) {
-
System.out.println(urlStr);
-
System.out.println(JSON.toJSONString(params));
-
ex.printStackTrace();
-
return null;
-
}
-
}
-
}
阅读(8548) | 评论(0) | 转发(0) |