精华内容
下载资源
问答
  • 创建请求页表,通过编程模拟缺页中断和地址变换,实现请求调页功能和页面置换功能。
  • java模拟https请求

    千次阅读 2018-09-28 16:04:15
    java模拟https请求 下述的方法只是一个通用的方法,不考虑证书的情况,可作参考,因为自己对证书协议也不是很熟。 关于引入的包可能有多余,请自行删减。 import javax.net.ssl.HttpsURLConnection; import javax...

    java模拟https请求

    下述的方法只是一个通用的方法,不考虑证书的情况,可作参考,因为自己对证书协议也不是很熟。
    关于引入的包可能有多余,请自行删减。

    import javax.net.ssl.HttpsURLConnection;
    import javax.net.ssl.SSLContext;
    import javax.net.ssl.SSLSocketFactory;
    import javax.net.ssl.TrustManager;
    import java.io.*;
    import java.net.MalformedURLException;
    import java.net.URL;
    import java.net.URLDecoder;
    import java.security.KeyManagementException;
    import java.security.NoSuchAlgorithmException;
    import java.security.SecureRandom;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    import java.net.URLEncoder;
    

    以下是方法,关于参数requestUrl为请求的路径,requestMethod为请求的方式(GET或POST),关于outputStr为请求的参数。

    public static String httpsRequest(String requestUrl, String requestMethod, String outputStr) {
            StringBuffer buffer = null;
    
            try {
                SSLContext sslContext = SSLContext.getInstance("SSL");
                TrustManager[] tm = {new MyX509TrustManager()};
                //初始化
                sslContext.init(null, tm, new SecureRandom());
                //获取SSLSocketFactory对象
                SSLSocketFactory ssf = sslContext.getSocketFactory();
                URL url = new URL(requestUrl);
                HttpsURLConnection conn = (HttpsURLConnection) url.openConnection();
                conn.setDoOutput(true);
                conn.setDoInput(true);
                conn.setUseCaches(false);
                conn.setRequestMethod(requestMethod);
                //设置当前实例使用的SSLSocketFactory
                conn.setSSLSocketFactory(ssf);
                conn.connect();
                //往服务器端写内容
                if (outputStr != null) {
                    OutputStream os = conn.getOutputStream();
                    os.write(outputStr.getBytes("utf-8"));
                    os.close();
                }
                //读取服务器端的返回内容
                InputStream is = conn.getInputStream();
                InputStreamReader isr = new InputStreamReader(is, "utf-8");
                BufferedReader bufferedReader = new BufferedReader(isr);
                buffer = new StringBuffer();
                String line = null;
                while ((line = bufferedReader.readLine()) != null)
                    buffer.append(line);
            } catch (NoSuchAlgorithmException e) {
                e.printStackTrace();
            } catch (KeyManagementException e) {
                e.printStackTrace();
            } catch (MalformedURLException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
            return buffer.toString();
        }
    

    现在看这个文章的时候发现似乎是少了一个类,现在补上

    import javax.net.ssl.X509TrustManager;
    import java.security.cert.CertificateException;
    import java.security.cert.X509Certificate;
    
    /**
     * Created by czy on 2018/11/23.
     *
     */
    public class MyX509TrustManager implements X509TrustManager {
        @Override
        public void checkClientTrusted(X509Certificate[] x509Certificates, String s) throws CertificateException {
    
        }
    
        @Override
        public void checkServerTrusted(X509Certificate[] x509Certificates, String s) throws CertificateException {
    
        }
    
        @Override
        public X509Certificate[] getAcceptedIssuers() {
            return new X509Certificate[0];
        }
    }
    
    
    展开全文
  • JAVA在后台模拟表单请求、 做数据同步的同志可以参考。
  • 主要介绍了java模拟发送form-data的请求方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • Java模拟post请求传上传文件(文件流做参)、下载文件、好使的。
  • 主要介绍了java web中 HttpClient模拟浏览器登录后发起请求的相关资料,需要的朋友可以参考下
  • 主要介绍了java模拟post请求登录猫扑的小示例,需要的朋友可以参考下
  • 主要介绍了java使用httpclient模拟post请求和get请求示例,需要的朋友可以参考下
  • 主要介绍了java后台调用HttpURLConnection类模拟浏览器请求实例,该实例可用于接口调用,具有一定的实用价值,需要的朋友可以参考下
  • Java模拟发送post请求

    千次阅读 2019-02-19 17:30:08
    项目要求:模拟100个温湿度设备发送温湿度数据进行压测,查看数据是否有叠加且显示正确,因为测试环境简陋,没有100个温湿度设备,只能通过调用接口模拟发送请求,由于每次发送的请求要求正文某些元素值要唯一,所以...

    项目要求:模拟100个温湿度设备发送温湿度数据进行压测,查看数据是否有叠加且显示正确,因为测试环境简陋,没有100个温湿度设备,只能通过调用接口模拟发送请求,由于每次发送的请求要求正文某些元素值要唯一,所以通过传参方式,每间隔一秒发送一次请求,发送满四条后间隔10分钟再次发送,写的是死循环,代码如下:

    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.io.OutputStreamWriter;
    import java.net.HttpURLConnection;
    import java.net.URL;
    
    public class DGStr {
    	static String Tag1="";
    	static String Tag2="";
    	static String Tag3="";
    	static String Tag4="";
    	static int k=0;
    	final static String url = "url地址"; 
        public static void main(String[] args) {
        	for(int j=3;j<80;j++) {
        		if(j>=3&&j<=19) {
        			Tag1=Tag1+"{\"id\":"+j+", \"t\":25.0, \"bat\":3},";
        			continue;
        		}
        		if(j>=21&&j<=39)
        		{
        			Tag2=Tag2+"{\"id\":"+j+", \"t\":25.0, \"bat\":3},";
        			continue;
        		}
        		if(j>=41&&j<=59)
        		{
        			Tag3=Tag3+"{\"id\":"+j+", \"t\":25.0, \"bat\":3},";
        			continue;
        		}
        		if(j>=61&&j<=79)
        		{
        			Tag4=Tag4+"{\"id\":"+j+", \"t\":25.0, \"bat\":3},";
        			continue;
        		}
       		//Tag1=Tag1+"{\"id\":"+j+", \"t\":25.0, \"bat\":3},";
        		
        	}
        	Tag1=Tag1+"{\"id\":20, \"t\":25.0, \"bat\":3}";
        	Tag2=Tag2+"{\"id\":40, \"t\":25.0, \"bat\":3}";
        	Tag3=Tag3+"{\"id\":60, \"t\":25.0, \"bat\":3}";
        	Tag4=Tag4+"{\"id\":80, \"t\":25.0, \"bat\":3}";
        	String[] params= {"{\"lac\":16794,"
                    + "\"cid\":19531,"+ "\"grp\":1," + "\"nodes\":"+"["+Tag1+"]"+"}","{\"lac\":16794,"
                            + "\"cid\":19531,"+ "\"grp\":1," + "\"nodes\":"+"["+Tag2+"]"+"}","{\"lac\":16794,"
                                    + "\"cid\":19531,"+ "\"grp\":1," + "\"nodes\":"+"["+Tag3+"]"+"}","{\"lac\":16794,"
                                           + "\"cid\":19531,"+ "\"grp\":1," + "\"nodes\":"+"["+Tag4+"]"+"}"};   
        	try {
        		while(true) {   	
            		for(k=0;k<4;k++) {
            			post(url, params[k]);
            			Thread.sleep(1000);
            		}
            		Thread.sleep(60000);
            		
        		}
            		
            		
        		
        	}catch(InterruptedException e) {
        		 e.printStackTrace();
        	}
        }
    
        public static String post(String strURL, String params) {
            System.out.println(strURL);
            System.out.println(params);
            BufferedReader reader = null;
            try {
                URL url = new URL(strURL);// 创建连接
                HttpURLConnection connection = (HttpURLConnection) url.openConnection();
                connection.setDoOutput(true);
                connection.setDoInput(true);
                connection.setUseCaches(false);
                connection.setInstanceFollowRedirects(true);
                connection.setRequestMethod("POST"); // 设置请求方式
                connection.setRequestProperty("Accept", "application/json"); // 设置接收数据的格式
                connection.setRequestProperty("Content-Type", "application/json"); // 设置发送数据的格式
                connection.connect();
                //一定要用BufferedReader 来接收响应, 使用字节来接收响应的方法是接收不到内容的
                OutputStreamWriter out = new OutputStreamWriter(connection.getOutputStream(), "UTF-8"); // utf-8编码
                out.append(params);
                //System.out.println(params);
                	
                
                out.flush();
                out.close();
                // 读取响应
                reader = new BufferedReader(new InputStreamReader(connection.getInputStream(), "UTF-8"));
                String line;
                String res = "";
                while ((line = reader.readLine()) != null) {
                    res += line;
                }
                reader.close();
                
    
                return res;
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            return "error"; // 自定义错误信息
        }
    
    
    }
    

    运行结果:

    展开全文
  • 开发爬虫时,写的工具类。用于模拟浏览器请求,欺骗服务器
  • Java 模拟http请求 亲测可用

    千次阅读 2017-03-09 09:30:57
    原创地址 ... 注意 相关包路径 不要导错 package ln; import java.io.BufferedReader;...import java.io.IOException;...import java.io.InputStreamReader;...import java.io.PrintWriter

    原创地址  http://www.cnblogs.com/vitre/p/5474166.html

    注意 相关包路径 不要导错

    package ln;
    
    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.io.PrintWriter;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;
    
    /**
     * 用于模拟HTTP请求中GET/POST方式 
     * @author landa
     *
     */
    public class HttpUtils {  
        /** 
         * 发送GET请求 
         *  
         * @param url 
         *            目的地址 
         * @param parameters 
         *            请求参数,Map类型。 
         * @return 远程响应结果 
         */  
        public static String sendGet(String url, Map<String, String> parameters) { 
            String result="";
            BufferedReader in = null;// 读取响应输入流  
            StringBuffer sb = new StringBuffer();// 存储参数  
            String params = "";// 编码之后的参数
            try {
                // 编码请求参数  
                if(parameters.size()==1){
                    for(String name:parameters.keySet()){
                        sb.append(name).append("=").append(
                                java.net.URLEncoder.encode(parameters.get(name),  
                                "UTF-8"));
                    }
                    params=sb.toString();
                }else{
                    for (String name : parameters.keySet()) {  
                        sb.append(name).append("=").append(  
                                java.net.URLEncoder.encode(parameters.get(name),  
                                        "UTF-8")).append("&");  
                    }  
                    String temp_params = sb.toString();  
                    params = temp_params.substring(0, temp_params.length() - 1);  
                }
                String full_url = url + "?" + params; 
                System.out.println(full_url); 
                // 创建URL对象  
                java.net.URL connURL = new java.net.URL(full_url);  
                // 打开URL连接  
                java.net.HttpURLConnection httpConn = (java.net.HttpURLConnection) connURL  
                        .openConnection();  
                // 设置通用属性  
                httpConn.setRequestProperty("Accept", "*/*");  
                httpConn.setRequestProperty("Connection", "Keep-Alive");  
                httpConn.setRequestProperty("User-Agent",  
                        "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1)");  
                // 建立实际的连接  
                httpConn.connect();  
                // 响应头部获取  
                Map<String, List<String>> headers = httpConn.getHeaderFields();  
                // 遍历所有的响应头字段  
                for (String key : headers.keySet()) {  
                    System.out.println(key + "\t:\t" + headers.get(key));  
                }  
                // 定义BufferedReader输入流来读取URL的响应,并设置编码方式  
                in = new BufferedReader(new InputStreamReader(httpConn  
                        .getInputStream(), "UTF-8"));  
                String line;  
                // 读取返回的内容  
                while ((line = in.readLine()) != null) {  
                    result += line;  
                }  
            } catch (Exception e) {
                e.printStackTrace();
            }finally{
                try {  
                    if (in != null) {  
                        in.close();  
                    }  
                } catch (IOException ex) {  
                    ex.printStackTrace();  
                }  
            }
            return result ;
        }  
      
        /** 
         * 发送POST请求 
         *  
         * @param url 
         *            目的地址 
         * @param parameters 
         *            请求参数,Map类型。 
         * @return 远程响应结果 
         */  
        public static String sendPost(String url, Map<String, String> parameters) {  
            String result = "";// 返回的结果  
            BufferedReader in = null;// 读取响应输入流  
            PrintWriter out = null;  
            StringBuffer sb = new StringBuffer();// 处理请求参数  
            String params = "";// 编码之后的参数  
            try {  
                // 编码请求参数  
                if (parameters.size() == 1) {  
                    for (String name : parameters.keySet()) {  
                        sb.append(name).append("=").append(  
                                java.net.URLEncoder.encode(parameters.get(name),  
                                        "UTF-8"));  
                    }  
                    params = sb.toString();  
                } else {  
                    for (String name : parameters.keySet()) {  
                        sb.append(name).append("=").append(  
                                java.net.URLEncoder.encode(parameters.get(name),  
                                        "UTF-8")).append("&");  
                    }  
                    String temp_params = sb.toString();  
                    params = temp_params.substring(0, temp_params.length() - 1);  
                }  
                // 创建URL对象  
                java.net.URL connURL = new java.net.URL(url);  
                // 打开URL连接  
                java.net.HttpURLConnection httpConn = (java.net.HttpURLConnection) connURL  
                        .openConnection();  
                // 设置通用属性  
                httpConn.setRequestProperty("Accept", "*/*");  
                httpConn.setRequestProperty("Connection", "Keep-Alive");  
                httpConn.setRequestProperty("User-Agent",  
                        "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1)");  
                // 设置POST方式  
                httpConn.setDoInput(true);  
                httpConn.setDoOutput(true);  
                // 获取HttpURLConnection对象对应的输出流  
                out = new PrintWriter(httpConn.getOutputStream());  
                // 发送请求参数  
                out.write(params);  
                // flush输出流的缓冲  
                out.flush();  
                // 定义BufferedReader输入流来读取URL的响应,设置编码方式  
                in = new BufferedReader(new InputStreamReader(httpConn  
                        .getInputStream(), "UTF-8"));  
                String line;  
                // 读取返回的内容  
                while ((line = in.readLine()) != null) {  
                    result += line;  
                }  
            } catch (Exception e) {  
                e.printStackTrace();  
            } finally {  
                try {  
                    if (out != null) {  
                        out.close();  
                    }  
                    if (in != null) {  
                        in.close();  
                    }  
                } catch (IOException ex) {  
                    ex.printStackTrace();  
                }  
            }  
            return result;  
        }  
      
        /** 
         * 主函数,测试请求 
         *  
         * @param args 
         */  
        public static void main(String[] args) {  
            Map<String, String> parameters = new HashMap<String, String>();  
            parameters.put("name", "sarin");  
            String result =sendGet("http://www.baidu.com", parameters);
            System.out.println(result); 
        }  
    }


    展开全文
  • 本篇文章主要介绍了java模拟post请求发送json的例子,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.InputStreamReader;import java.io.OutputStreamWriter;import java.net.CookieManager;import java.net.HttpURLConnection;import ja...

    import java.io.BufferedReader;

    import java.io.BufferedWriter;

    import java.io.InputStreamReader;

    import java.io.OutputStreamWriter;

    import java.net.CookieManager;

    import java.net.HttpURLConnection;

    import java.net.URL;

    /**

    * @author Tony

    *

    */

    public class HttpClient {

    CookieManager ca = new CookieManager();

    String sessionID = "";

    public String get(String url, String charset) {

    try {

    String key = "";

    String cookieVal = "";

    URL httpURL = new URL(url);

    HttpURLConnection http = (HttpURLConnection) httpURL

    .openConnection();

    if (!sessionID.equals("")) {

    http.setRequestProperty("Cookie", sessionID);

    }

    for (int i = 1; (key = http.getHeaderFieldKey(i)) != null; i++) {

    if (key.equalsIgnoreCase("set-cookie")) {

    cookieVal = http.getHeaderField(i);

    cookieVal = cookieVal.substring(

    0,

    cookieVal.indexOf(";") > -1 ? cookieVal

    .indexOf(";") : cookieVal.length() - 1);

    sessionID = sessionID + cookieVal + ";";

    }

    }

    BufferedReader br = new BufferedReader(new InputStreamReader(

    http.getInputStream(), charset));

    StringBuilder sb = new StringBuilder();

    String temp = null;

    while ((temp = br.readLine()) != null) {

    sb.append(temp);

    sb.append("\n");

    }

    br.close();

    return sb.toString();

    } catch (Exception e) {

    e.printStackTrace();

    }

    return null;

    }

    public String post(String url, String data, String charset) {

    try {

    URL httpURL = new URL(url);

    String key = null;

    String cookieVal = null;

    HttpURLConnection http = (HttpURLConnection) httpURL

    .openConnection();

    http.setDoOutput(true);

    http.setDoInput(true);

    if (!sessionID.equals("")) {

    http.setRequestProperty("Cookie", sessionID);

    }

    BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(

    http.getOutputStream(), charset));

    bw.write(data);

    bw.close();

    BufferedReader br = new BufferedReader(new InputStreamReader(

    http.getInputStream(), charset));

    StringBuilder sb = new StringBuilder();

    String temp = null;

    while ((temp = br.readLine()) != null) {

    sb.append(temp);

    sb.append("\n");

    }

    br.close();

    for (int i = 1; (key = http.getHeaderFieldKey(i)) != null; i++) {

    if (key.equalsIgnoreCase("set-cookie")) {

    cookieVal = http.getHeaderField(i);

    cookieVal = cookieVal.substring(0, cookieVal.indexOf(";"));

    sessionID = sessionID + cookieVal + ";";

    }

    }

    return sb.toString();

    } catch (Exception e) {

    e.printStackTrace();

    }

    return null;

    }

    }

    展开全文
  • java 模拟http发送json请求

    万次阅读 2018-06-06 19:54:25
    java中经常会用到模拟http请来发送各种消息,比如说,有get请求,post请求,post请求的参数又包括一般参数和json参数,http工具如下:import java.io.BufferedReader; import java.io.IOException; import java.io....
  • Postman模拟请求

    2018-08-15 21:10:08
    Postman一款非常流行的API调试工具。对于开发过程中去调试接口,Postman确实足够的简单方便,而且功能强大
  • java 模拟请求@RequestBody

    千次阅读 2018-08-09 14:19:19
    1.服务端 package com.knife.test; public class A { private String name; private int age; public String getName() { return name; } public void setName(String name) { ... pu...
  • importjava.io.BufferedReader;importjava.io.IOException;importjava.io.InputStreamReader;importjava.io.PrintWriter;importjava.net.URL;importjava.net.URLConnection;importjava.util.List;imp...
  • 我一向喜欢用模拟http请求的方式,所以就用了,结果返回中文乱码,也不是乱码,类似这种 任劢 奇怪拿soapUI请求是没问题的,我换了Fiddler请求,发现RAW下看确实是乱码,但是在XML下看显示是中文 所以...
  • java模拟发送form-data的请求

    千次阅读 2019-08-08 16:13:34
    //url为需要请求的地址 private void postParam ( Map < String , String > params , String url ) throws Exception { HttpClient client = new HttpClient ( ) ; PostMethod method = ...
  • 我现在需要在服务器端获取地理位置信息,因此我通过java程序模拟HTTP请求,去访问AAA.JSP,但因为ajax是异步的,模拟程序访问该页面的时候,其中的ajax方法还没执行结束,服务器就返回了该页面的静态HTML内容,导致...
  • java模拟HTTP请求,发送JSON数据

    千次阅读 2018-03-09 10:14:30
    1.使用HttpClient实现POST、GET请求的发送2.举例/***测试类*/public class Test{ public static void main(String[] args){ User u=new User(); u.setUserName="张三"; u.setUserPassWorld="zs...
  • Java 模拟Ajax POST GET 提交代码,实测很好用。
  • HTTP协议详解及Java模拟浏览器请求

    千次阅读 2018-09-19 18:07:10
    HTTP协议是什么? 所谓协议,就是规定,HTTP协议,就是HTTP规定。HTTP(Hypertext transfer protocol)超... HTTP是一个应用层协议,由请求和响应构成,是一个标准的客户端服务器模型。HTTP是一个无状态的协议。HT...
  • 说明在java使用HttpURLConnection请求rest接口的时候出现了POST请求出现中文乱码的问题,经过把传入的String通过多种方法进行编码发现都解决不了,如下: String teString=new String("你好".getBytes("ISO-8859-1")...
  • java模拟http请求header里加application/x-www-form-urlencoded的方式 public String post(String url,Map<String,String> map) { List<NameValuePair> urlParameters = new ArrayList<>(); ...
  • 本文通过实例代码给大家介绍了Java 发送http请求上传文件功能,需要的朋友参考下吧
  • Java模拟HTTP请求,带cookie

    万次阅读 2015-05-07 17:34:36
    import java.io.BufferedReader; import java.io.DataOutputStream; import java.io.IOException; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.MalformedURL
  • 改资源中携带报文模拟范例,亲测有效。注释详细,步骤突出!源于真实需求,工具类拿来急用,具体业务可以稍调一下
  • 通过实现一个操作系统的内存管理的模拟系统,观察内存空闲分区管理、内存分配和回收过程,了解内存管理技术等特点,掌握内存管理中的分配、回收和置换算法,加深对请求调页系统的原理和实现过程的理解。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 151,496
精华内容 60,598
关键字:

java模拟请求

java 订阅
友情链接: 2121659.rar