java模拟get/post提交
1:用jdk连接
String action = "xxxxxxxxxxx";
URL url = new URL(action);
HttpURLConnection http = (HttpURLConnection) url.openConnection();
http.setRequestMethod("POST");
http.setConnectTimeout(0);
http.setInstanceFollowRedirects(true);
http.setRequestProperty("Content-Type",
"application/x-www-form-urlencoded");
http.setDefaultUseCaches(false);
http.setDoOutput(true); String queryString = "";
PrintWriter out = new PrintWriter(http.getOutputStream());
out.print(queryString);//传入参数
out.close();
http.connect();//连接
InputStream in = httpURLConnection.getInputStream();
2:apache组件
- 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();
- GetMethodmethod = 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();
- PostMethodmethod = 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模拟get/post提交的更多相关文章
- java模拟post方式提交表单实现图片上传【转】
转自:http://blog.csdn.net/5iasp/article/details/8669644 模拟表单html如下: <form action="up_result ...
- JAVA模拟表单提交
这是我网上搜的,自己使用也蛮方便,所以上传供大家分享. package wzh.Http; import java.io.BufferedReader; import java.io.IOExce ...
- 真理胜于一切 JAVA模拟表单提交
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import ...
- Java模拟HttpClient进行Get和Post提交
使用Java模拟客户端进行提交,需要用到apache http client jar,这里用的是4.4版本 GET: public void GetURL(){ String strResp=&qu ...
- java模拟表单上传文件,java通过模拟post方式提交表单实现图片上传功能实例
java模拟表单上传文件,java通过模拟post方式提交表单实现图片上传功能实例HttpClient 测试类,提供get post方法实例 package com.zdz.httpclient; i ...
- Java模拟登陆02【转载】
在使用java访问URL时,如果该URL需要身份验证,那么就不能够直接访问,因为没有登陆.那么,如何解决这个问题呢? 方法是使用java模拟登陆,登陆后记录下cookie信息,在下次发起请求时 ...
- java模拟form上传数据
Java模拟form表单上传 查看form表单提交的http请求为 import java.io.*; import java.net.*; public class FileUpload { /** ...
- HTTP通信模拟表单提交数据
前面记录过一篇关于http通信,发送数据的文章:http://www.cnblogs.com/hyyq/p/7089040.html,今天要记录的是如何通过http模拟表单提交数据. 一.通过GET请 ...
- java模拟Cookies登陆
在使用java访问URL时,如果该URL需要身份验证,那么就不能够直接访问,因为没有登陆.那么,如何解决这个问题呢? 方法是使用java模拟登陆,登陆后记录下cookie信息,在下次发起请求时时将co ...
随机推荐
- jmock2.5基本教程(转)
原文:http://www.cnblogs.com/zfc2201/archive/2011/12/30/2307970.html jmock2.5基本教程 目录 第0章 概述 第1章 jmock初体 ...
- 分割视图控制器(UISplitViewController) 改_masterColumnWidth 导致在 IOS 10中出现闪退
默认UISplitViewController的Master和Detail的宽度是固定的,可以通过下面的方式来改变 [splitViewController setValue:[NSNumber nu ...
- Linux 内核开发 - 进程空间
1.1 虚拟内存 Linux 的系统.假设每一个任务都独立的占用内存,则实际的物理内存将非常快消耗殆尽.实际上对于前台正在执行的任务来说,所须要要的内存并不多,非常多任务基本不须要执行,也就没有必要一 ...
- 制作可独立分发的Android模拟器
文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/6586759 如果我们编写了一个Android应 ...
- Android应用程序键盘(Keyboard)消息处理机制分析
在Android系统中,键盘按键事件是由WindowManagerService服务来管理的,然后再以消息的形 式来分发给应用程序处理,不过和普通消息不一样,它是由硬件中断触发的:在上一篇文章< ...
- 【HDU】 1018 Big Number
大意就是求 : log10(n!) = log10(1 * 2 * 3 * .......*n) = log10(1) + log10(2) + ........+log10(n); 打表的话会ML ...
- 免费自学Cocos2d-x3.0final2014原创视频教程(56集)(适用于Cocos2d-x3.1 Cocos2d-x3.2版本号全)
Cocos2d-x3.0final(适用于Cocos2d-x3.1 Cocos2d-x3.2版本号全) 视频播放地址:http://yun.itxdl.cn/course/62 视频下载地址:http ...
- 虚拟化之docker
1,什么是docker dokcer是应用容器,它是基于系统的虚拟化,他不是基于硬件的虚拟化(KVM),可能这样说有点抽象,我在知乎看到过一个比喻, docker思想是来源于集装箱的,在一艘大船上,可 ...
- 关于position和float的用法!
我要说的是这部分的切图, 先说一下为什么要用到position 看我的截图, 应该知道这块的组成是有两部分, 但中间那个绿圈中, 组成的两个部分有重叠的, 这时候, 可能会想用float, 但floa ...
- .NET winform 的keypress事件中判断当用户按下的是哪个键
keys是按键的枚举类型 private void txtPropertyValue_KeyPress(object sender, KeyPressEventArgs e) { if ((Keys) ...