import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Map;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpMethod;
import org.apache.commons.httpclient.HttpStatus;
import org.apache.commons.httpclient.URIException;
import org.apache.commons.httpclient.methods.GetMethod;
import org.apache.commons.httpclient.methods.PostMethod;
import org.apache.commons.httpclient.params.HttpMethodParams;
import org.apache.commons.httpclient.util.URIUtil;
/**
*
*
* <p>Title:HttpTookitEnhance</p>
* <p>Description: httpclient模拟http请求,解决返回内容乱码问题</p>
* <p>Copyright: Copyright (c) 2010</p>
* <p>Company: </p>
* @author libin
* @version 1.0.0
*/
public class HttpTookitEnhance
{
/**
* 执行一个HTTP GET请求,返回请求响应的HTML
*
* @param url 请求的URL地址
* @param queryString 请求的查询参数,可以为null
* @param charset 字符集
* @param pretty 是否美化
* @return 返回请求响应的HTML
*/
public static String doGet ( String url, String queryString, String charset, boolean pretty )
{
StringBuffer response = new StringBuffer();
HttpClient client = new HttpClient();
HttpMethod method = new GetMethod(url);
try
{
if ( queryString != null && !queryString.equals("") )
//对get请求参数做了http请求默认编码,好像没有任何问题,汉字编码后,就成为%式样的字符串
method.setQueryString(URIUtil.encodeQuery(queryString));
client.executeMethod(method);
if ( method.getStatusCode() == HttpStatus.SC_OK )
{
BufferedReader reader = new BufferedReader(new InputStreamReader(method.getResponseBodyAsStream(), charset));
String line;
while ( ( line = reader.readLine() ) != null )
{
if ( pretty )
response.append(line).append(System.getProperty("line.separator"));
else
response.append(line);
}
reader.close();
}
}
catch ( URIException e )
{
}
catch ( IOException e )
{
}
finally
{
method.releaseConnection();
}
return response.toString();
}
/**
* 执行一个HTTP POST请求,返回请求响应的HTML
*
* @param url 请求的URL地址
* @param params 请求的查询参数,可以为null
* @param charset 字符集
* @param pretty 是否美化
* @return 返回请求响应的HTML
*/
public static String doPost ( String url, Map<String, String> params, String charset, boolean pretty )
{
StringBuffer response = new StringBuffer();
HttpClient client = new HttpClient();
HttpMethod method = new PostMethod(url);
//设置Http Post数据
if ( params != null )
{
HttpMethodParams p = new HttpMethodParams();
for ( Map.Entry<String, String> entry : params.entrySet() )
{
p.setParameter(entry.getKey(), entry.getValue());
}
method.setParams(p);
}
try
{
client.executeMethod(method);
if ( method.getStatusCode() == HttpStatus.SC_OK )
{
BufferedReader reader = new BufferedReader(new InputStreamReader(method.getResponseBodyAsStream(), charset));
String line;
while ( ( line = reader.readLine() ) != null )
{
if ( pretty )
response.append(line).append(System.getProperty("line.separator"));
else
response.append(line);
}
reader.close();
}
}
catch ( IOException e )
{
}
finally
{
method.releaseConnection();
}
return response.toString();
}
public static void main ( String [] args )
{
String y = doGet("http://video.sina.com.cn/life/tips.html", null, "GBK", true);
System.out.println(y);
}
}
相关推荐
地磁场仿真与导航方案设计
地磁场仿真与导航方案设计 地磁场作为地球的固有资源,为航空、航天、航海提供了天然的坐标,可应用于航天器、航空飞行器和舰船等载体的定位、定向及姿态控制。本文依据地磁场的球谐模型,利用Matlab工具,设计了计算任意地点地磁场的程序,对仿真结果与实际数据进行对比分析;并选定一组卫星的数据,结合卫星的运动轨道,描绘90分钟内卫星处地磁总强度/矢量随轨道变化曲线,据此设计一种卫星地磁导航方案。 一、地磁场计算原理 1.1.球谐模型与球谐系数 地磁学的基本问题之一就是用数学表达式将地磁要素的地面分布表示成地理坐标的函
HttpClient报错org.apache.commons.httpclient.HttpMethodBase - Cookie rejected
使用HttpClient发http请求时报如下错误:org.apache.commons.httpclient.HttpMethodBase - Cookie rejected 最后发现是没有设置Cookie的接收策略,应该如下设置: HttpClient httpClient = new HttpClient(); httpClient.getParams().setCookiePolicy(C...
LaTeX伪代码字体大小调整全攻略:从algorithm到algorithm2e的实战技巧
本文详细介绍了在LaTeX中调整伪代码字体大小的全面技巧,涵盖algorithm、algorithmicx和algorithm2e等主流算法包的使用方法。从基础命令到高级配置,帮助用户解决学术论文和技术文档中的伪代码排版问题,提升算法展示的专业性和可读性。特别针对不同期刊格式要求,提供了实用的字体调整方案。
1分钟快速学会HttpClient
HttpClient:顾名思义,基于Http协议的客户端,它的作用是模拟浏览器发送Http请求。 构建Client的第三方包有多种,这里我选择使用org.apache.commons包。 首先,配置依赖包 <dependency> <groupId>commons-httpclient</groupId> <artifactId&g...
告别点不亮!STM32F103驱动HT1621段码屏的常见坑点与调试心得
本文详细解析了STM32F103驱动HT1621段码屏的五大常见问题及解决方案,包括硬件连接、时序控制、RAM地址映射等关键难点。通过实测数据和代码示例,帮助开发者快速排查显示异常问题,提升驱动开发效率。特别针对HT1621与STM32F103的兼容性问题提供了专业调试建议。
[V-10]ARMv8/v9-CPU Virtualization-CPU虚拟化架构简介(vCPU/vPE)
本文简要介绍了CPU虚拟化架构的基础知识。
org.apache.commons.httpclient.HttpClient的使用
HTTP 协议可能是现在 Internet 上使用得最多、最重要的协议了,越来越多的 Java 应用程序需要直接通过 HTTP 协议来访问网络资源。虽然在 JDK 的 java net包中已经提供了访问 HTTP 协议的基本功能,但是对于大部分应用程序来说,JDK 库本身提供的功能还不够丰富和灵活。HttpClient 是 Apache Jakarta Common 下的子项目,用来提供高效的、最
YOLOv11改进 | Conv/卷积篇 | 轻量化多尺度异构卷积(MSHC)优化YOLOv11精度(全网独家首发)
本文介绍了Hype-YOLO提出的MANet结构,这是C3、C2f、C3k2的升级版,能显著增强特征提取能力。MANet整合了DSConv和C2f结构,通过多分支异构设计提升梯度流动和特征语义深度。文章详细解析了MSHC模块的原理,包括其多尺度并行建模、通道混洗等核心机制,并提供了完整的代码实现和训练教程。实验表明,Hype-YOLO的精度优于YOLOv11。该结构在保持轻量化的同时,通过异构分支设计实现了更丰富的特征表达,适用于目标检测等视觉任务。
org.apache.commons.httpclient使用理解
个人理解,这个方法就是解析url,分解成ip 和 端口号,为了后面httpclient连接做准备 EntityEnclosingMethod httpMethod = new PostMethod(url); // 跟踪一下方法 1 public PostMethod(String uri) { super(uri); } // 跟踪一下方法 next ...
基于江协科技STM32创建HAL库工程模板
基于江协科技STM32入门教程创建的HAL库工程模板
Visual Studio Code + MCP Server + Claude Code 三件套进行 ABAP 开发
本文介绍了如何在Visual Studio Code中利用Claude Code和SAP官方提供的MCP Server进行ABAP开发。作者分享了19年ABAP开发经验,从手动编码到如今通过自然语言生成高质量代码的技术演进。详细说明了配置步骤:启用ADT MCP Server、安装Claude Code扩展、配置.claude.json文件,并验证MCP Server的14个功能。通过实例演示了如何用自然语言指令让Claude Code创建包含冒泡排序实现和单元测试的ABAP类,展示了MCP Server在
httpclient (2)
根据以上步骤,我们来编写用GET方法来取得某网页内容的代码。 大部分情况下 HttpClient 默认的构造函数已经足够使用。 HttpClient httpClient = new HttpClient(); ...
《HiVT: Hierarchical Vector Transformer for Multi-Agent Motion Prediction》论文阅读之HiVT
目录摘要1.介绍2.相关工作3.方法3.1. 总体框架3.2 场景表示 3.3 分层向量Transformer3.3.1 局部编码器3.3.2 全局交互模块3.3.3 多模态未来解码器3.4 训练4.实验4.1 实验设置4.2 消融研究 4.3. 结果5.结论 准确预测周围交通参与者的未来运动对于自动驾驶车辆的安全至关重要。最近,矢量化方法由于能够捕捉交通场景中的复杂交互而在运动预测领域占据主导地位。然而,现有的方法忽略了问题的对称性并且受到昂贵的计算成本的影响,面临着在不牺牲预测性能的情况
java http 模拟提交post_Java模拟Http Get和Post 提交
本帖最后由 html580 于 2014-5-15 10:06 编辑在工具中有时我们要进行模态表单提交数据,现在给大家一个通过通过HttpURLConnection模拟Http Get和Post表单提交。相关文章: Java 使用HttpClient模拟 Http Get和Post 提交package com.html580.connection;import java.io.BufferedRe...
VC中sqlite的使用
在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示
OV9734 DATASHEET,完整规格书
OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等
java socket post_socket模拟http中post或者get提交数据,并获得响应数据
post提交模拟import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.IOException;import java.io.InputStreamReader;import java.io.OutputStreamWriter;import java.net.InetAddress;import jav...
jre9下载 jdk9
(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】
Java 使用 URLConnection 模拟 Http Get和Post 提交
Java 使用 URLConnection 模拟 Http Get和Post 提交 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.URL; import
java模拟http get和post 提交 httpclient
原文地址:http://blog.youkuaiyun.com/miniyaner/article/details/12423435 原文post的处理不是很方便,本人对其进行了改造,下面为改造完后的代码: 使用httpclient工具包commons-httpclient-3.1.jar,依赖commons-logging-1.0.4.jar和commons-codec-1.3.jar。
java httpclient教程_Java 使用HttpClient模拟 Http Get和Post 提交
package com.html580.connection;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.HashMap;import java.util.Map;import org.apache.commons.httpcli...
HTTP通信模拟表单提交数据
前面记录过一篇关于http通信,发送数据的文章:http://www.cnblogs.com/hyyq/p/7089040.html,今天要记录的是如何通过http模拟表单提交数据。 一、通过GET请求方式提交:最简单的一种方式 直接在链接后面跟上要提交的数据即可,比如: http://yychf.55555.io/get.do?username=yyc&password=yychf,通过
java get和post请求参数设置,Get和Post两种方式向指定地址提交表单
做Java做了很多年,却总是把一些东西遗忘,过后再着急的找寻。最近,需要通过Java代码模拟一个表单提交,却怎么也想不起来如何封装数据了。本篇主要描述Java网络参数传递,主要分为get和post两种方式。说句玩笑话,真有干了几年Java的朋友不知道get和post的差别,我就在这里唠叨几句。这个url中,a、b和c是url参数,具体的说是参数名,与之用“=”隔开的是对应的参数值。也就是说参数a的...
7408



被折叠的 条评论
为什么被折叠?



