`
taiwei.peng
  • 浏览: 234379 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

模块之间调用form 表单提交

    博客分类:
  • java
阅读更多

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

}

 

}

 

分享到:
评论

相关推荐

    防止Layui form表单重复提交的实现方法

    通过form.on("submit(formConfig)",function(data){...})的调用,开发者可以指定当具有特定lay-filter属性的表单触发提交事件时,执行相应的函数。在这个函数内部,返回false可以阻止表单的提交,即阻止表单数据被...

    struts1.2 from表单提交包含list的对象

    在Struts1.2中处理表单提交,特别是当表单数据包含列表对象时,需要理解一些核心概念和技术。这篇博客文章可能详细探讨了如何在Struts1.2中处理这类情况。 首先,让我们来了解Struts1.2中的表单提交流程。当用户在...

    angular form 表单例子

    在组件类中注入`FormBuilder`服务,然后可以调用其方法来创建表单。例如,创建一个包含用户名和密码的登录表单: ```typescript import { FormBuilder, FormGroup } from '@angular/forms'; export class ...

    layui 解决form表单点击无反应的问题

    当我们遇到使用layui框架开发的Web页面中form表单点击无反应的问题时,可以通过特定的解决方法来修复此问题。Layui是一个前端UI框架,它提供了一套简洁的CSS和JS代码模块,用以快速构建界面和交互效果。Layui的模块...

    VC++模拟post上传Form表单

    在实际应用中,`HttpFileEx`类可以作为一个独立的组件,方便其他程序模块调用,实现数据的POST提交。这不仅可以用于表单数据的提交,也可以扩展到任何需要通过POST方式向服务器发送数据的场景,如上传文件、执行API...

    vue_form_design:基于Vue3.0的表单设计器

    5. **表单提交与响应式**:与后端API无缝对接,实现表单数据的提交,同时支持表单状态的实时反馈,如表单验证错误提示。 6. **代码导出**:生成的表单设计可以被导出为Vue组件代码,方便整合到项目中。 在前端框架...

    解决使用layui的时候form表单中的select等不能渲染的问题

    在使用layui框架进行前端开发时,form表单中的select等表单元素可能会遇到无法正常渲染的问题。这个问题通常发生在动态地向页面中添加表单元素时,比如使用JavaScript或者jQuery动态生成HTML内容,并添加到页面中。...

    基于layui点击按钮弹出包含表单的窗口

    这个例子涵盖了layui的`form`和`layer`模块的基本使用,包括按钮事件监听、弹窗创建、表单渲染、表单验证以及表单提交。通过深入学习layui文档,你可以发掘更多高级特性和定制化选项,进一步提升你的前端开发效率。

    vue3form表单的二次封装

    通过以上方式,Vue3 Form 表单的二次封装能够帮助我们构建更加模块化、可维护的前端应用。同时,它也有助于提高开发效率,降低新开发者的学习成本,因为他们只需要理解并使用我们的自定义组件即可,无需深入理解底层...

    vue3-form-usage:使用vue3的表单用法

    `onSubmit`函数在提交时调用,并通过`.prevent`修饰符阻止了默认的表单提交行为。 6. **表单验证**: Vue3可以通过引入第三方库,如Vuelidate或使用自定义的验证逻辑来实现。使用`ref`和`watch`可以轻松实现对表单...

    volley 通过表单提交数据

    在 Android 应用中,经常需要向服务器提交表单数据,Volley 提供了简单且强大的方式来实现这一功能。以下将详细介绍如何使用 Volley 通过表单提交数据以及封装表单数据。 1. **Volley 模块介绍** Volley 主要由 ...

    c#在多线程中访问Form中控件的多种解决方案

    - 每次访问控件都需要判断当前线程是否为 UI 线程,并通过 `Invoke` 方法进行调用,可能会影响性能。 #### 解决方案三:使用 BackgroundWorker 组件 `BackgroundWorker` 是 .NET Framework 提供的一个用于执行后台...

    vue-ele-form源码

    4. **表单提交和重置**:组件提供了便捷的表单提交和重置方法,简化了表单操作逻辑,只需调用对应的方法即可完成表单的提交和清空。 5. **表单值的双向绑定**:Vue.js的核心特性之一就是数据绑定,vue-ele-form继承...

    FormDesigner基于AntDesign和jQueryUI的表单设计器

    FormDesigner 可以作为一个独立的模块集成到任何React项目中。开发者需要先安装依赖,如`antd`和`jquery-ui`,然后引入FormDesigner的相关组件,根据文档配置并初始化设计器。在实际应用中,可以结合后端API动态加载...

    SpringMVC之表单提交===②===单文件上传表单

    现在,当用户通过表单提交文件时,Spring MVC将调用`handleFileUpload`方法处理文件上传。你可以根据需要对文件进行进一步操作,如存储到服务器、数据库或其他服务。 总结,本文介绍了Spring MVC中单文件上传的基本...

    RAD XE2三种调用BPL中FORM的方法

    标题“RAD XE2三种调用BPL中FORM的方法”指的是在使用Embarcadero RAD Studio XE2时,如何在主程序中调用BPL包中定义的表单(FORM)。本文将详细阐述这三种方法,并探讨正确释放BPL包的策略。 首先,我们来了解什么...

    关于layui表单中按钮自动提交的解决方法

    对于仍需留在表单内的按钮,可以在layui的form模块中通过监听提交事件并返回`false`来阻止默认行为。例如: ```javascript form.on('submit(filter)', function(data) { // 执行你的业务逻辑 console.log('表单...

    Python代码源码-实操案例-框架案例-如何使用WTForms验证Form表单中的字段.zip

    这个压缩包文件"Python代码源码-实操案例-框架案例-如何使用WTForms验证Form表单中的字段.zip"显然是为了展示如何在实际项目中运用WTForms来验证表单字段,帮助开发者理解并掌握这一技术。下面我们将详细讨论WTForms...

    React Form 指南.pdf

    你可以在表单元素上使用onSubmit事件处理函数,并传递一个event参数,这个参数是一个事件对象,你可以通过调用event.preventDefault()来防止表单的默认提交行为,这对于异步表单提交尤其重要。此外,你还可以通过...

    PHP实例开发源码—FormBuilder 面向对象的PHPClass用于创建HTML表单.zip

    `FormBuilder`可能还包含了一些处理表单提交的辅助方法,如验证数据或转换数据格式。 **面向对象的优势** 1. **代码重用**:`FormBuilder`类可以被多次实例化,为不同的表单生成代码,减少了重复工作。 2. **模块...

Global site tag (gtag.js) - Google Analytics