- 浏览: 179843 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (56)
- 算法 (9)
- linux (15)
- oracle (4)
- Project Euler Problem (3)
- 编程珠玑 (2)
- 数学 (1)
- http (1)
- java (19)
- plsql (1)
- apusic (1)
- https (1)
- 备忘 (22)
- 概率 (1)
- EIP (0)
- eclipse (1)
- 安全 (1)
- 公钥体系 (6)
- PKI (2)
- 网络 (2)
- linux,克隆 (0)
- virt-manager (1)
- VMWare (1)
- 克隆 (1)
- logback (1)
- TimeBasedRollingPolicy (0)
- SizeBasedTriggeringPolicy (0)
- properties (1)
- class (1)
- classloader (1)
- netty (1)
- thread dump (1)
- jstack (1)
- jconsole (1)
- java,编码,文件名 (0)
- google (1)
- goagent (1)
- 线程池 (1)
- 博客 (1)
- hexo (1)
- github (1)
- gitcafe (1)
最新评论
-
panhl:
我也实现了一个https://github.com/panho ...
具有相同属性任务串行有序执行的线程池设计 -
fengwei5129:
感谢,最近在看netty源码一直搞不清楚是如何实现的死锁检测, ...
Future机制用于并发编程时的死锁检测 -
OpenMind:
发现IBM JDK的System.nanoTime()没有实现 ...
Java系统时钟几个值得思考的问题 -
lvhongfen:
好了,感谢LZ分享
windows下plsql 设置 里面timestamp显示的格式 -
OpenMind:
今天发现,在linux下还有个很简介的方法查看线程的转储信息, ...
不依赖jstack的java 线程dump和死锁检查工具
1),利用httpclient4.× 写一个http的客户端,模拟浏览器请求,
uri是请求的地址,charset是编码“UTF-8”,List<NameValuePair>就是表单参数集
2) 采用JDK的HttpConnection构造http客户端,
addPair方法:
public void post(List<NameValuePair> payload) throws Exception{ HttpPost post = new HttpPost(uri); HttpEntity result = null; try { UrlEncodedFormEntity entity = new UrlEncodedFormEntity(payload, charset); post.setEntity(entity); if (LOG.isDebugEnabled()) { LOG.debug("sending:" + payload); } HttpResponse response = _httpClient.execute(post); StatusLine statusLine = response.getStatusLine(); if (statusLine.getStatusCode() != HttpStatus.SC_OK) { result = response.getEntity(); StringBuilder msg = new StringBuilder(); msg.append("http response with code " + statusLine.getStatusCode()); msg.append("\n"); msg.append("post request: " + post.getURI()); msg.append("\n"); msg.append(statusLine.getReasonPhrase()); if (result != null) { msg.append("\n\n"); msg.append(EntityUtils.toString(result, "UTF-8")); msg.append("\n\n"); } throw new UmcException(msg.toString()); } if (response.getEntity() != null) { BufferedReader reader = new BufferedReader( new InputStreamReader( response.getEntity().getContent(), "UTF-8")); String line = null; while ((line = reader.readLine()) != null) { if (line.indexOf("success") < 0) System.out.println(line); } } } finally { if (result != null) try { EntityUtils.consume(result); } catch (IOException e) { } post.abort(); } }
uri是请求的地址,charset是编码“UTF-8”,List<NameValuePair>就是表单参数集
ClientConnectionManager ccManager = new ThreadSafeClientConnManager(); HttpClient _httpClient = new DefaultHttpClient(ccManager);
2) 采用JDK的HttpConnection构造http客户端,
////发送 HttpURLConnection conn = null; try { URL url = new URL(Your_URL); conn = (HttpURLConnection) url.openConnection(); conn.setRequestMethod("POST"); conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); conn.setUseCaches(false); conn.setDoOutput(true); OutputStreamWriter osw = new OutputStreamWriter( conn.getOutputStream()); StringBuffer sb = new StringBuffer(); addPair(sb, "p1", "p1value"); addPair(sb, "p2", "p2value"); osw.write(sb.substring(0, sb.length() - 1)); osw.flush(); BufferedReader reader = new BufferedReader( new InputStreamReader(conn.getInputStream())); String line = null; sb = new StringBuffer(); while ((line = reader.readLine()) != null) { sb.append(line); } line = sb.toString(); // 处理返回的字符串line return; //// } catch (IOException e) { // handle e } finally { if (conn != null) conn.disconnect(); }///发送结束
addPair方法:
public static void addPair(StringBuffer sb, String name, String value) { if (value == null) { return; } sb.append(name); sb.append("="); sb.append(value); sb.append("&"); }
发表评论
-
具有相同属性任务串行有序执行的线程池设计
2014-09-04 15:30 1434我有一个这样的线程池的场景,相信很多人都遇到过: 1,每个用 ... -
不依赖jstack的java 线程dump和死锁检查工具
2013-10-08 14:41 2444java线程dump可以使用jdk的命令“jstack ... -
回忆去年用Java破解unity.exe的过程
2013-05-26 00:48 2665去年我一同学要我破解unity.exe,然后挂在网上卖点钱花 ... -
netty做Pipe一端快一端慢时防止内存溢出进行的操作
2013-05-23 17:12 5938前段时间用netty3.x做了 ... -
为什么InputStream.read()读取一个byte确返回一个int呢?
2013-05-09 16:26 5226问题1:为什么InputStream.read()读取一个 ... -
Java系统时钟几个值得思考的问题
2013-04-10 16:48 4611System.currentTimeMillis()是依赖 ... -
logback的SizeBasedTriggeringPolicy和TimeBasedRollingPolicy联合使用问题
2013-04-01 13:37 15232<appender name="FILE& ... -
netty应用分析
2013-03-07 15:54 0用netty 3.5.7做了一个网络程序,c与s之间有一个心 ... -
Java包装类Integer比较
2012-10-18 16:41 11291,用符号==比较两个对象,意味着比较他们是否是统一个对象。 ... -
Future机制用于并发编程时的死锁检测
2012-10-18 14:51 6008Netty源码里面有个类:De ... -
java-在非安全网络上建立可信任安全的通道(2/3)
2012-10-05 19:19 1251在不安全的网络环境下进行密钥交互(1/3,前面那一节),容易遭 ... -
java-在非安全网络上建立可信任安全的通道(1/3)
2012-10-05 18:46 1910看到标题,几乎所有人都会想到SSL,但SSL比较重 ... -
java编程方式用CA给证书进行签名/签发证书
2012-10-05 18:02 11979这些代码首先加载CA证书,然后分别用CA给Alice和Bob签 ... -
java编程方式生成CA证书
2012-10-05 17:28 15367下面是java编程方式生成CA证书的代码,使用的是BC的pro ... -
Class.getResourceAsStream
2013-04-06 14:09 1029Class.getResourceAsStream(" ... -
findbugs
2012-03-02 16:41 0findbugsfindbugsfindbugsfindbug ... -
并发编程
2012-03-02 16:41 0C:\Users\Sunny\Desktop\docC:\Us ... -
泛型类里面获取到泛型的类型
2012-03-01 10:15 3454下面的代码可以让你在抽象的泛型类里面获取到泛型的类型 ab ... -
java 学习网站大全
2012-02-27 12:02 0http://scjp.home.sohu.com/ 模拟试题 ... -
First JNI
2012-02-13 14:34 816http://hi.baidu.com/fwmf/blog/i ...
相关推荐
本教程将详细讲解如何使用Java来模拟HTTP请求。 首先,Java中常用的库有HttpURLConnection、Apache HttpClient和OkHttp。这里我们将主要讨论HttpURLConnection,它是Java标准库的一部分,无需额外引入依赖。使用...
java模拟客户端向服务器发送post请求
这些需求可以通过模拟HTTP请求的方式实现。本篇文章将详细介绍如何使用Java语言来模拟发送网页请求,并特别关注POST请求及Cookie的处理。 #### 二、模拟发送GET请求 首先,我们来看看如何使用Java的`java.net.URL`...
在Java编程中,有时我们需要模拟浏览器发送HTTP请求,例如调用外部接口或API。`HttpURLConnection`是Java标准库提供的一种轻量级的HTTP客户端,它允许我们在后台代码中发送GET和POST请求。本篇文章将深入讲解如何...
我们可以使用 Java 语言来发送 HTTP 请求,并将 Cookie 信息写入到 HTTP 头部中,以便模拟用户的登陆行为。 Java 模拟 Cookie 登陆的实现 下面是一个简单的 Java 模拟 Cookie 登陆的示例代码: ```java import ...
Java中发送HTTP请求的方式有很多,如使用`java.net.HttpURLConnection`、`java.net.URL`、Apache HttpClient库或OkHttp库。本工具类主要基于`HttpURLConnection`,因为它是Java标准库的一部分,无需额外依赖,且能...
主要分为以下几个部分:Http请求的基本概念、模拟Http请求的必要性、Apache HttpClient库的介绍及其在Java中的使用方法。 ### Http请求基本概念 Http(Hypertext Transfer Protocol)是用于从WWW服务器传输超文本...
在实际开发中,这样的测试文件通常包含各种HTTP请求和响应的模拟数据,用于确保异步请求和流式处理功能的正确性。 总之,Java中的HTTP异步请求通过`HttpAsyncClients`和自定义的回调处理类,如`...
在Java编程中,模拟HTTP请求是一项常见的任务,尤其在网页抓取、自动化测试以及网络数据获取等场景下。本项目涉及的关键技术点是利用HTTP客户端库进行登录操作,并抓取海投网的数据,随后将这些信息存储到MySQL...
这个“java模拟微信浏览器访问.rar”压缩包中的主要文件是“MonitorWeixinBrowser.java”,我们可以推测这是一个Java程序,用于模拟微信内置浏览器的行为。下面将详细介绍这个主题的相关知识点。 1. **Java HTTP ...
Java 模拟 HTTP 请求的错误问题整理 Java 模拟 HTTP 请求是一种常见的编程技术,然而在实际应用中,我们经常会遇到各种错误问题。下面是对 Java 模拟 HTTP 请求的错误问题的整理和分析。 问题一:Illegal ...
...本文将详细介绍如何使用Java语言来构建一个可以提交表单数据的HTTP POST请求。...从构建HTML表单到使用不同的库来模拟HTTP请求,再到处理表单参数,每一步都需要仔细考虑以确保数据的安全性和准确性。
3. **创建HttpURLConnection对象**:使用`java.net.URL`类打开与目标服务器的连接,并通过`openConnection()`方法获取HttpURLConnection对象。然后,将Socket工厂设置为HTTPS连接的套接字工厂。 ```java URL url = ...
在Android开发中,模拟HTTP请求是一项基础且重要的任务,它允许应用与远程服务器进行数据交互,获取或发送信息。本文将深入探讨如何在Android平台上实现HTTP请求,主要涉及以下几个方面: 1. **HTTP协议基础**:...
java墨迹HTTP请求传送图片。其中服务端部分可以另找我下载
当我们需要实现文件上传功能时,可以通过模拟HTTP请求来完成。这个过程通常涉及到表单提交、Multipart/form-data编码、HttpClient或者HttpURLConnection类的使用。下面将详细探讨这些知识点。 1. **HTTP POST请求**...
在示例代码中,我们使用HttpGet对象来发送POST请求,并指定请求的URL、请求头和请求体。 使用HttpClient发送POST请求可以帮助我们与HTTPS服务器进行交互,但需要注意证书验证过程。使用X509TrustManager可以忽略...
在Java编程中,处理HTTP请求是一项常见的需求,特别是在与Web服务进行交互时。Apache HttpClient库提供了一种强大的方法来执行HTTP请求,无论是简单的GET请求还是复杂的带有表单参数的POST请求。本文将通过具体的...
1. **构建HTTP请求**:使用像`HttpURLConnection`或者第三方库如`Apache HttpClient`或`OkHttp`,创建一个指向登录页面的POST请求。你需要设置请求头,比如`Content-Type`通常设为`application/x-...