java模拟http get和post 提交

使用httpclient工具包commons-httpclient-3.1.jar,依赖commons-logging-1.0.4.jar和commons-codec-1.3.jar。

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

}
java 作为客户端发送http post请求登录网站首页。 尝试的一个网站,发现它的登录页面是会自动跳转的,再请求的话则会退回登录页面很是苦恼。提示: HTTP/1.1 302 Found 立即下载

相关推荐

地磁场仿真与导航方案设计

地磁场仿真与导航方案设计 地磁场作为地球的固有资源,为航空、航天、航海提供了天然的坐标,可应用于航天器、航空飞行器和舰船等载体的定位、定向及姿态控制。本文依据地磁场的球谐模型,利用Matlab工具,设计了计算任意地点地磁场的程序,对仿真结果与实际数据进行对比分析;并选定一组卫星的数据,结合卫星的运动轨道,描绘90分钟内卫星处地磁总强度/矢量随轨道变化曲线,据此设计一种卫星地磁导航方案。 一、地磁场计算原理 1.1.球谐模型与球谐系数 地磁学的基本问题之一就是用数学表达式将地磁要素的地面分布表示成地理坐标的函

PRQKKK的博客 7408

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...

空夜's Blog 3432

LaTeX伪代码字体大小调整全攻略:从algorithm到algorithm2e的实战技巧

本文详细介绍了在LaTeX中调整伪代码字体大小的全面技巧,涵盖algorithm、algorithmicx和algorithm2e等主流算法包的使用方法。从基础命令到高级配置,帮助用户解决学术论文和技术文档中的伪代码排版问题,提升算法展示的专业性和可读性。特别针对不同期刊格式要求,提供了实用的字体调整方案。

weixin_29297127的博客 437

1分钟快速学会HttpClient

HttpClient:顾名思义,基于Http协议的客户端,它的作用是模拟浏览器发送Http请求。 构建Client的第三方包有多种,这里我选择使用org.apache.commons包。 首先,配置依赖包 &lt;dependency&gt; &lt;groupId&gt;commons-httpclient&lt;/groupId&gt; &lt;artifactId&g...

qq_28411869的博客 297

告别点不亮!STM32F103驱动HT1621段码屏的常见坑点与调试心得

本文详细解析了STM32F103驱动HT1621段码屏的五大常见问题及解决方案,包括硬件连接、时序控制、RAM地址映射等关键难点。通过实测数据和代码示例,帮助开发者快速排查显示异常问题,提升驱动开发效率。特别针对HT1621与STM32F103的兼容性问题提供了专业调试建议。

weixin_30925435的博客 379

[V-10]ARMv8/v9-CPU Virtualization-CPU虚拟化架构简介(vCPU/vPE)

本文简要介绍了CPU虚拟化架构的基础知识。

基层架构师的分享 1267

org.apache.commons.httpclient.HttpClient的使用

HTTP 协议可能是现在 Internet 上使用得最多、最重要的协议了,越来越多的 Java 应用程序需要直接通过 HTTP 协议来访问网络资源。虽然在 JDK 的 java net包中已经提供了访问 HTTP 协议的基本功能,但是对于大部分应用程序来说,JDK 库本身提供的功能还不够丰富和灵活。HttpClient 是 Apache Jakarta Common 下的子项目,用来提供高效的、最

校尉的博客 4082

YOLOv11改进 | Conv/卷积篇 | 轻量化多尺度异构卷积(MSHC)优化YOLOv11精度(全网独家首发)

本文介绍了Hype-YOLO提出的MANet结构,这是C3、C2f、C3k2的升级版,能显著增强特征提取能力。MANet整合了DSConv和C2f结构,通过多分支异构设计提升梯度流动和特征语义深度。文章详细解析了MSHC模块的原理,包括其多尺度并行建模、通道混洗等核心机制,并提供了完整的代码实现和训练教程。实验表明,Hype-YOLO的精度优于YOLOv11。该结构在保持轻量化的同时,通过异构分支设计实现了更丰富的特征表达,适用于目标检测等视觉任务。

Snu77的博客 950

org.apache.commons.httpclient使用理解

个人理解,这个方法就是解析url,分解成ip 和 端口号,为了后面httpclient连接做准备 EntityEnclosingMethod httpMethod = new PostMethod(url); // 跟踪一下方法 1 public PostMethod(String uri) { super(uri); } // 跟踪一下方法 next ...

BraveHeart 3862

基于江协科技STM32创建HAL库工程模板

基于江协科技STM32入门教程创建的HAL库工程模板

2401_82728381的博客 1133

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在

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1296

httpclient (2)

根据以上步骤,我们来编写用GET方法来取得某网页内容的代码。 大部分情况下 HttpClient 默认的构造函数已经足够使用。 HttpClient httpClient = new HttpClient(); ...

Jason分享,共同进步 310

《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.结论 准确预测周围交通参与者的未来运动对于自动驾驶车辆的安全至关重要。最近,矢量化方法由于能够捕捉交通场景中的复杂交互而在运动预测领域占据主导地位。然而,现有的方法忽略了问题的对称性并且受到昂贵的计算成本的影响,面临着在不牺牲预测性能的情况

Gavinmiaoc的博客 3340

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...

weixin_39607240的博客 218

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...

weixin_42364640的博客 710

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

梦想起飞的地方......... 662

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。

木偶笔记 486

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...

weixin_31739613的博客 301

HTTP通信模拟表单提交数据

前面记录过一篇关于http通信,发送数据的文章:http://www.cnblogs.com/hyyq/p/7089040.html,今天要记录的是如何通过http模拟表单提交数据。 一、通过GET请求方式提交:最简单的一种方式   直接在链接后面跟上要提交的数据即可,比如: http://yychf.55555.io/get.do?username=yyc&password=yychf,通过

caoliu1024cl的博客 2266

java get和post请求参数设置,Get和Post两种方式向指定地址提交表单

做Java做了很多年,却总是把一些东西遗忘,过后再着急的找寻。最近,需要通过Java代码模拟一个表单提交,却怎么也想不起来如何封装数据了。本篇主要描述Java网络参数传递,主要分为get和post两种方式。说句玩笑话,真有干了几年Java的朋友不知道get和post的差别,我就在这里唠叨几句。这个url中,a、b和c是url参数,具体的说是参数名,与之用“=”隔开的是对应的参数值。也就是说参数a的...

weixin_39581845的博客 1082
上一篇: java实现缩略图和抓屏幕
下一篇: 对新浪大片只管看不能下载说NO!
libin7758521
博客等级 码龄19年 0粉丝 22原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值