java 模拟浏览器请求

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;

public class HttpRequest {
    //url:接口     param:参数
    public static String httpGet(String url, String param){
        String result="";   //结果初始化为空
        BufferedReader in=null;
        String urlName=url+"?"+param;
        
        try {
            URL reaUrl=new URL(urlName);
            URLConnection connection = reaUrl.openConnection();
            // 设置通用的请求属性
            connection.setRequestProperty("accept", "*/*");
            connection.setRequestProperty("connection", "Keep-Alive");
            connection.setRequestProperty("user-agent",
                    "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
            // 建立实际的连接
            connection.connect();
            
            // 定义 BufferedReader输入流来读取URL的响应
            in = new BufferedReader(new InputStreamReader(
                    connection.getInputStream()));
            String line;
            
            while ((line = in.readLine()) != null) {
                result += line;
            }
            
        } catch (Exception e) {
            System.out.println("发送GET请求出现异常!" + e);
            e.printStackTrace();
        }
        
        // 使用finally关闭输入流
        finally {
            try {
                if (in != null) {
                    in.close();
                }
            } catch (Exception e2) {
                e2.printStackTrace();
            }
        }
        return result;
    }
    
}
 

转载于:https://my.oschina.net/zhangyaxin/blog/898465

### Java 实现 POST 请求 为了使用 Java 模拟浏览器发送 POST 请求,`HttpURLConnection` 是一种常用的方式。下面是一个完整的例子来展示如何构建并发送带有参数的 HTTP POST 请求[^1]。 ```java import java.io.OutputStream; import java.net.HttpURLConnection; import java.net.URL; public class PostExample { private final String USER_AGENT = "Mozilla/5.0"; public static void main(String[] args) throws Exception { new PostExample().sendPost(); } // 发送POST请求到给定URL public void sendPost() throws Exception { String url = "http://example.com/api"; URL obj = new URL(url); HttpURLConnection con = (HttpURLConnection) obj.openConnection(); // 设置基本属性 con.setRequestMethod("POST"); con.setRequestProperty("User-Agent", USER_AGENT); con.setRequestProperty("Accept-Language", "en-US,en;q=0.5"); // 设置为true表示允许输入和输出流操作 con.setDoOutput(true); // 构建表单数据字符串 String urlParameters = "param1=value1&param2=value2"; // 发送POST请求中的参数 try(OutputStream os = con.getOutputStream()) { byte[] input = urlParameters.getBytes("utf-8"); os.write(input, 0, input.length); } int responseCode = con.getResponseCode(); System.out.println("POST Response Code :: " + responseCode); if (responseCode == HttpURLConnection.HTTP_OK) { // 成功响应 // 处理成功后的逻辑... } else { // 错误处理... } } } ``` 此代码片段展示了创建 `HttpURLConnection` 对象的过程,并设置了必要的头部信息以及通过输出流写入要传递的数据。注意这里指定了 User-Agent 字符串模仿真实浏览器行为[^4]。此外,在设置连接对象时启用了输出模式 (`setDoOutput`) 来准备发送数据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值