package com.soft.util;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLDecoder;
import java.nio.charset.Charset;
import org.apache.commons.lang.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
/**
* POST支持发送二进制数据
*/
public class HttpUtilGet {
private static final Log logger = LogFactory.getLog(HttpUtilGet.class);
private static final String charset = "UTF-8" ;
private static final String timeOut = "2000" ; //单位毫秒,超时设置为2秒
public static String sendHttpUrlGet(String url, String data) {
try {
URL urlGet = new URL(url);
HttpURLConnection http = (HttpURLConnection) urlGet.openConnection();
http.setRequestMethod("GET"); // 必须是get方式请求
http.setRequestProperty("Content-Type","application/x-www-form-urlencoded");
http.setDoOutput(true);
http.setDoInput(true);
System.setProperty("sun.net.client.defaultConnectTimeout", timeOut);// 连接超时5秒
System.setProperty("sun.net.client.defaultReadTimeout", timeOut); // 读取超时5秒
http.connect();
if (StringUtils.isNotBlank(data)) {
OutputStream os = http.getOutputStream();
os.write(data.getBytes(charset));// 传入参数
os.flush();
if(os != null){
os.close();
}
}
InputStream is = http.getInputStream();
String message = transInputStreamToString(is, charset) ;
return message;
} catch (Exception e) {
e.printStackTrace();
logger.error(e.getMessage(), e);
}
return null;
}
public static String sendHttpUrlPOST(String url, String data) {
try {
URL urlGet = new URL(url);
HttpURLConnection http = (HttpURLConnection) urlGet.openConnection();
http.setRequestMethod("POST");
http.setRequestProperty("Content-Type","application/x-www-form-urlencoded");
http.setDoOutput(true);
http.setDoInput(true);
System.setProperty("sun.net.client.defaultConnectTimeout", timeOut);// 连接超时5秒
System.setProperty("sun.net.client.defaultReadTimeout", timeOut); // 读取超时5秒
http.connect();
if (StringUtils.isNotBlank(data)) {
OutputStream os = http.getOutputStream();
os.write(data.getBytes(charset));// 传入参数
os.flush();
if(os != null){
os.close();
}
}
InputStream is = http.getInputStream();
String message = transInputStreamToString(is, charset) ;
return message;
} catch (Exception e) {
e.printStackTrace();
logger.error(e.getMessage(), e);
}
return null;
}
/**
* 输入流转字符串,出现过解析数据丢失的情况
* @author liujf 2017年4月26日 下午2:16:54
* @param is
* @param encoding
* @return
*/
protected static String tansIsToString(InputStream is, String encoding) {
try {
int size = is.available();
byte[] jsonBytes = new byte[size];
is.read(jsonBytes);
String message = new String(jsonBytes, encoding);
return message ;
} catch (Exception e) {
}finally{
if(is != null){
try {
is.close();
} catch (IOException e) {
}
}
}
return null;
}
/**
* 输入流转字符串
* @author liujf 2017年4月26日 下午2:17:50
* @param is
* @param encoding
* @return
*/
private static String transInputStreamToString(InputStream is, String encoding) {
String line = null;
StringBuffer sb = new StringBuffer();
BufferedReader br = new BufferedReader(new InputStreamReader(is,Charset.forName(encoding))); //一定传编码,否则会出现乱码
try {
while ((line = br.readLine()) != null) {
sb.append(line);
}
return URLDecoder.decode(sb.toString(), encoding);
} catch (IOException e1) {
e1.printStackTrace();
} finally {
try {
if (br != null) {
br.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
return sb.toString();
}
}
相关推荐
nodejs作为服务端语言,在开发中注册登录等需通过form表单向后端发送数据进行判断,那作为服务端语言的nodejs通过哪些方法可以接收调用form表单的post请求值呢。 常见的会用到以下三种,让我们对着例子看看具体...
c#在多线程中访问Form中控件的多种解决方案,是我看到的最好最全的方案,贡献给大家看看,希望有所启发
有关背景信息,请查看指向此模块的。 HTML5 表单验证功能非常好,但也有一些缺陷。 ValidForm是HTML5功能的一层,并尝试通过三件事来增强它们: 输入无效时的invalid类。 此类提供比:input伪选择器更好的用户反馈...
setFormdata 设置表单数据 setFiledata 设置文件数据 send 发送数据 connect 创建连接 disconnect 断开连接 sendGet get 方式,处理发送的数据,不会处理文件数据 sendPost post 方式,处理发送的数据 ...
股票系统模型 前端:页面显示模块化 k线显示 后端:django框架,调用第三方获取数据代码说明: views.py 逻辑代码 urls.py 路由跳转 models.py 用于数据库ORM data.py 调用tushare获取股票实时数据 forms.py 定义...
ck-form 和 ck-field 标签可帮助您构建和重用表单控件。 (即将推出)ck-field 将使用 swagger-spec 自动选择正确的表单控件模板。 JsonApi 服务管理您的 api 调用,目前支持。 无需编写自己的 HTTP 请求。 服务器...
Form表单处理块 Fso操作类操作 Html控件 Http对XMLHttp处理块 Error错误处理块 Json处理块 jsLib(JS脚本核心引用操作) List处理各种List对象 Mail邮件处理块 PY拼音转换模块 Rnd随机数函数块 Session操作类 Sc脚本...
react 常用组件API调用的模块化封装 项目启动 npm install npm run server npm run build 发布 npm install webpack-cli --save-dev 配置环境变量 cross-env 项目介绍 工作中发现我们在做react后台管理系统的时候,...
要开始使用此模块构建表单,请在您的项目中包含formeo.min.js和formeo.min.css并调用: import { FormeoEditor , FormeoRenderer } from 'formeo' // Set up a form builder const editor = new FormeoEditor ( ...
T733443 - Ribbon Form - 在使用皮肤时,如果ribbon样式为rs2013或更新时,则打开的Backstage视图中不正确地绘制表单的边框的问题 T731314 - TdxOfficeSearchBox - 在下拉菜单显示搜索结果时释放Alt Gr键将关闭菜单...
2、可调用留言,能做为评论模块用于其他系统的开发. 3、代码简洁,功能实用. 使用说明: 2、帐号密码以及一些参数在gustbook_Conn.asp中修改,用记事本打开,里面有注释。初始帐号密码都为:admin 3、...
可以在同一个表单Form里有多个eWebEditor,也可以在同一页里有多个eWebEditor,也可以有多个样式不同的eWebEditor。 大文件支持 一般的输入框有102399字节的限制(100K左右),大文本内容不能使用,而eWebEditor...
可以在同一个表单Form里有多个eWebEditor,也可以在同一页里有多个eWebEditor,也可以有多个样式不同的eWebEditor。 大文件支持 一般的输入框有102399字节的限制(100K左右),大文本内容不能使用,而eWebEditor...
输入数据都通过form表单中定义的方法onsubmit="return checkForm()"来检查,checkForm()函数中是各种的校验输入数据的方式。 (4)收费信息管理 描述:管理员点击左侧的菜单“收费信息管理”,页面跳转到收费信息...
安装使用模块在应用中引用 validator.min.js 文件# npm 安装$ npm install validator.tool --save# bower 安装$ bower info validator.tool在 .js 文件中调用// 字符串验证var validator = require('validator.tool'...
08 form表单之select标签 09 table标签 第38章 01 css的四种引入方式 02 css的四种基本选择器 03 css的组合选择器 04 css的属性选择器 05 css的伪类 06 css的选择器优先级 07 css的背景属性 第39章 01 css的文本...
从输入框输入数据,在servlet层通过request.getParameter()获取form表单提交的参数,将获得的用户名、密码作为参数调用dao层的方法进行查询数据库,select * from t_user_info where username=? andpassword =? 如果...
Dom提交表单及其他 Dom事件操作 Dom事件操作补充 Dom绑定时间的另外一种方式 JavaScript 词法分析解析 前端学习方法分享 Sublime Text工具使用介绍 谢幕 第17周 今日内容概要 jQuery 和Dom关系及jQuery版本 jQuery...
8.2 Form表单组件 226 8.2.1 DisplayField控件 226 8.2.2 在FormPanel中使用TabPanel 229 8.2.3 DirectLoad与DirectSubmit 232 8.2.4 使用DirectSubmit上传文件 235 8.3 Grid组件 238 8.3.1 一个结合DataWrite和...
注册的时候不要以form表单的形式直接提交信息,要采用ajax,以json的形式,向后台提交信息。 学生登录页面: 登录信息:学号、密码登录 用cookie(加密)使十天内记住账号信息 (提示:为了您的信息安全,请不要在...