`

HttpUrlConnection模拟浏览器发送请求

 
阅读更多

servlet...code

package cn.itcast;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class OneServlet extends HttpServlet {

public void doGet(HttpServletRequest request, HttpServletResponse resp)
throws ServletException, IOException {
String name = request.getParameter("name");
System.err.println("这是get、、、、"+name);
resp.setContentType("text/html;charset=UTF-8");
resp.getWriter().print("你好:"+name);
}

public void doPost(HttpServletRequest request, HttpServletResponse resp)
throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");
String name = request.getParameter("name");
System.err.println("这是post请求......."+name);
resp.setContentType("text/html;charset=UTF-8");
resp.getWriter().print("你好:"+name);
}

}


测试类

package cn.demo;

import java.io.File;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import org.junit.Test;
public class Demo {
/**
* 发送get请求
* @throws Exception
*/
@Test
public void testConn() throws Exception{
//第一步:声明url
String urlPath = "http://localhost:6666/day22_cos/OneServlet?name=Jack";
//第二步:声明URL对象
URL url = new URL(urlPath);
//第三步:从url上获取连接
HttpURLConnection con=  (HttpURLConnection) url.openConnection();
//第四步:设置访问的类型
con.setRequestMethod("GET");
//第五步:设置可以向服务器发信息。也可以从服务器接收信息
con.setDoInput(true);//设置可以向服务器发信息
con.setDoOutput(true);//也可以从服务器接收信息
//第六步:连接
con.connect();
//7:检查连接状态
int code = con.getResponseCode();
if(code==200){
//8:从服务器读取数据
InputStream in = con.getInputStream();
byte[] b = new byte[1024];
int len = 0;
while((len=in.read(b))!=-1){
String s = new String(b,0,len,"UTF-8");
System.err.print(s);
}
}
//9:断开
con.disconnect();
}
/**
* 以下发送post请求
*/
@Test
public void post() throws Exception{
//第一步:声明url
String urlPath = "http://localhost:6666/day22_cos/OneServlet";
//第二步:声明URL对象
URL url = new URL(urlPath);
//第三步:从url上获取连接
HttpURLConnection con=  (HttpURLConnection) url.openConnection();
//第四步:设置访问的类型
con.setRequestMethod("POST");
con.setRequestProperty("Content-Type","application/x-www-form-urlencoded");
//第五步:设置可以向服务器发信息。也可以从服务器接收信息
con.setDoInput(true);//设置可以向服务器发信息
con.setDoOutput(true);//也可以从服务器接收信息
//第六步:发信息
//获取输出流
OutputStream out = con.getOutputStream();
out.write("name=张三".getBytes("UTF-8"));


//7:检查连接状态
int code = con.getResponseCode();
if(code==200){
//8:从服务器读取数据
InputStream in = con.getInputStream();
byte[] b = new byte[1024];
int len = 0;
while((len=in.read(b))!=-1){
String s = new String(b,0,len,"UTF-8");
System.err.print(s);
}
}
//9:断开
con.disconnect();
}
}




分享到:
评论

相关推荐

    java后台调用HttpURLConnection类模拟浏览器请求实例(可用于接口调用)

    本篇文章将深入讲解如何使用`HttpURLConnection`类来模拟浏览器请求,并通过实例展示其在接口调用中的应用。 首先,`HttpURLConnection`是`java.net.URLConnection`的一个子类,用于处理HTTP协议。在使用`...

    JAVA模拟网页发送请求

    首先,我们来看看如何使用Java的`java.net.URL`类和`java.net.HttpURLConnection`类来模拟发送GET请求并获取网页内容。 ##### 代码示例: ```java // 创建URL对象 URL url = new URL(...

    java模拟微信浏览器访问.rar

    - **HttpURLConnection**:Java标准库提供的基础HTTP客户端,可以用来发送GET和POST请求,模拟浏览器行为。 - **Apache HttpClient**:一个功能强大的HTTP客户端库,提供了更灵活和高效的API来处理HTTP请求。 - *...

    java实现多次HttpURLConnection共享session

    为了解决这个问题,我们需要实现session共享,使得多次HTTP请求之间能够识别彼此,模拟浏览器的会话保持。 首先,理解Session和Cookie的概念是关键。Session是服务器端保存用户状态的一种方式,而Cookie则是客户端...

    andriod 模拟Http请求

    在Android中,无论是使用HttpURLConnection还是OkHttp,都可以通过构建URL并发送请求来实现。例如,使用OkHttp的简单GET请求如下: ```java OkHttpClient client = new OkHttpClient(); Request request = new ...

    Java 模拟cookie登陆简单操作示例

    我们可以使用 Java 语言来发送 HTTP 请求,并将 Cookie 信息写入到 HTTP 头部中,以便模拟用户的登陆行为。 Java 模拟 Cookie 登陆的实现 下面是一个简单的 Java 模拟 Cookie 登陆的示例代码: ```java import ...

    模拟ie发送http消息

    在IT行业中,模拟浏览器发送HTTP消息是一项常见的任务,特别是在自动化测试、数据抓取或API接口调试等场景。这里我们关注的是模拟Internet Explorer(IE)浏览器发送HTTP消息,这通常是通过编程实现的,例如使用...

    类似postman发送请求工具

    总之,这个“类似Postman发送请求工具”是专为API测试和开发设计的,具备中文界面和简洁操作的特点,可能集成了Java HTTP请求功能,用户可以通过它方便地模拟HTTP请求,进行API的测试和调试。同时,Apifox-2.2.22....

    JAVA通过HttpURLConnection 上传和下载文件的方法

    HttpURLConnection可以模拟浏览器的行为,向服务器发送请求,并获取服务器的响应。 二、JAVA通过HttpURLConnection上传文件的方法 下面是一个使用HttpURLConnection上传文件的示例代码: ```java public class ...

    java发送http请求工具类

    Java中发送HTTP请求的方式有很多,如使用`java.net.HttpURLConnection`、`java.net.URL`、Apache HttpClient库或OkHttp库。本工具类主要基于`HttpURLConnection`,因为它是Java标准库的一部分,无需额外依赖,且能...

    java模拟http请求登陆抓取海投网信息

    1. **HTTP客户端库**:Java提供了多种库来发送HTTP请求,如HttpURLConnection(Java内置)、Apache HttpClient或OkHttp。这些库允许我们构造POST请求,模拟用户登录过程,通常需要设置请求头(如User-Agent)、POST...

    网页浏览器 模拟网页浏览器

    在Java中,`java.net.URL`类可以用于解析和表示URL,`java.net.HttpURLConnection`或`java.net.URLConnection`可以用来发起HTTP请求。 2. **页面加载与渲染**:加载HTML页面后,浏览器需要解析HTML代码并渲染成可视...

    运用java实现简单的浏览器功能

    这些类允许我们连接到服务器,发送GET请求,接收响应,并读取返回的数据。 1. **URL对象**:`java.net.URL`类用于表示统一资源定位符,这是访问网络资源的地址。我们可以通过构造函数初始化URL对象,例如:`URL url...

    JAVA浏览器小实例

    在构建浏览器实例时,需要创建各种类来模拟浏览器的功能,如URL解析、HTTP请求等。 2. **JAVA网络编程**:此实例涉及JAVA的`java.net`包,它包含了处理网络连接的类,如`URL`、`URLConnection`和`HttpURLConnection...

    java爬虫模拟登陆源码

    对于动态加载,可能需要用到Selenium等工具来模拟浏览器行为;对于反爬策略,可能需要定期更换User-Agent,设置延迟,甚至使用代理IP。 总的来说,Java爬虫模拟登录是一项涉及网络请求、HTML解析、Cookie管理等多个...

    Android应用源码之31.模拟Http请求(.zip

    然后,使用HttpURLConnection发送GET或POST请求: ```java URL url = new URL("http://example.com"); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setRequestMethod(...

    模拟登录拍拍

    - **设置请求头**:模拟浏览器行为,添加必要的请求头,如User-Agent,Content-Type等。 - **构造请求体**:创建一个包含用户名和密码的数据字符串,根据Content-Type设置编码格式。 - **写入请求数据**:调用...

    Java模拟登录百度Demo

    6. **模拟浏览器行为**: 为了使模拟登录更接近真实用户,我们可能需要复制浏览器的一些行为,比如设置User-Agent,处理Referer字段,以及处理其他可能影响登录的HTTP头。 7. **持久化会话**: 如果登录成功,我们...

    java模拟登陆新浪微博(非API)

    1. **构建请求头**:模拟登录的第一步是设置正确的请求头,包括User-Agent(模拟浏览器类型)、Content-Type(通常为`application/x-www-form-urlencoded`,表示表单提交的数据格式)和Cookie(用于存储和发送服务器...

Global site tag (gtag.js) - Google Analytics