精华内容
下载资源
问答
  • 模拟POST请求

    千次阅读 2019-08-20 16:29:59
    PHP中使用CURL实现GET和POST请求 CURL 是一个利用URL语法规定来传输文件和数据的工具,支持很多协议,如HTTP、FTP、TELNET等。最爽的是,PHP也支持 CURL 库。使用PHP的CURL 库可以简单和有效地去抓网页。你只需要...

    由于2019/12/16发现模拟form表单自动提交会跳转页面,后续代码表单无法再模拟,所以参考curl跳转

    https://www.cnblogs.com/CHEUNGKAMING/p/5717429.html
    
    https://blog.csdn.net/whaxkl/article/details/99622259
    

    PHP中使用CURL实现GET和POST请求

    CURL 是一个利用URL语法规定来传输文件和数据的工具,支持很多协议,如HTTP、FTP、TELNET等。最爽的是,PHP也支持 CURL 库。使用PHP的CURL 库可以简单和有效地去抓网页。你只需要运行一个脚本,然后分析一下你所抓取的网页,然后就可以以程序的方式得到你想要的数据了。无论是你想从从一个链接上取部分数据,或是取一个XML文件并把其导入数据库,那怕就是简单的获取网页内容,CURL 是一个功能强大的PHP库。

    PHP建立CURL请求的基本步骤
    ①:初始化

    curl_init()

    ②:设置属性

    curl_setopt().有一长串CURL 参数可供设置,它们能指定URL请求的各个细节。

    ③:执行并获取结果

    curl_exec()

    ④:释放句柄

    curl_close()

    ①:GET方式实现

    //初始化
        $curl = curl_init();
        //设置抓取的url
        curl_setopt($curl, CURLOPT_URL, 'http://www.baidu.com');
        //设置头文件的信息作为数据流输出
        curl_setopt($curl, CURLOPT_HEADER, 1);
        //设置获取的信息以文件流的形式返回,而不是直接输出。
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
        //执行命令
        $data = curl_exec($curl);
        //关闭URL请求
        curl_close($curl);
        //显示获得的数据
        print_r($data);
    

    ②:POST方式实现

    //初始化
        $curl = curl_init();
        //设置抓取的url
        curl_setopt($curl, CURLOPT_URL, 'http://www.baidu.com');
        //设置头文件的信息作为数据流输出
        curl_setopt($curl, CURLOPT_HEADER, 1);
        //设置获取的信息以文件流的形式返回,而不是直接输出。
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
        //设置post方式提交
        curl_setopt($curl, CURLOPT_POST, 1);
        //设置post数据
        $post_data = array(
            "username" => "coder",
            "password" => "12345"
            );
        curl_setopt($curl, CURLOPT_POSTFIELDS, $post_data);
        //执行命令
        $data = curl_exec($curl);
        //关闭URL请求
        curl_close($curl);
        //显示获得的数据
        print_r($data);
    

    ③:如果获得的数据时json格式的,使用json_decode函数解释成数组。

    $output_array = json_decode($data,true); //如果第二个参数为true,就转为数组的形式。如果不填就为对象的形式

    如果使用json_decode($data)解析的话,将会得到object类型的数据。

    ③:GET,POST封装

    //参数1:访问的URL,参数2:post数据(不填则为GET),参数3:提交的$cookies,参数4:是否返回$cookies
     function curl_request($url,$post='',$cookie='', $returnCookie=0){
            $curl = curl_init();
            curl_setopt($curl, CURLOPT_URL, $url);
            curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0)');
            curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
            curl_setopt($curl, CURLOPT_AUTOREFERER, 1);
            curl_setopt($curl, CURLOPT_REFERER, "http://XXX");
            if($post) {
                curl_setopt($curl, CURLOPT_POST, 1);
                curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($post));
            }
            if($cookie) {
                curl_setopt($curl, CURLOPT_COOKIE, $cookie);
            }
            curl_setopt($curl, CURLOPT_HEADER, $returnCookie);
            curl_setopt($curl, CURLOPT_TIMEOUT, 10);
            curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
            $data = curl_exec($curl);
            if (curl_errno($curl)) {
                return curl_error($curl);
            }
            curl_close($curl);
            if($returnCookie){
                list($header, $body) = explode("\r\n\r\n", $data, 2);
                preg_match_all("/Set\-Cookie:([^;]*);/", $header, $matches);
                $info['cookie']  = substr($matches[1][0], 1);
                $info['content'] = $body;
                return $info;
            }else{
                return $data;
            }
    }
    

    旧的模拟请求

    $html = '';
            foreach ($native as $key => $val){
                $html .= "<input name='{$key}' type='text' value='{$val}' />";
            }
    
            echo "<form style='display:none;' id='form1' name='form1' method='post' action='{$tjurl}'>{$html}</form>
                <script type='text/javascript'>function load_submit(){document.form1.submit()}load_submit();</script>";
            exit();
    
    $html = "<form id='alipaysubmit' name='alipaysubmit' action='{$this->gateway}' method='post'>";
            foreach ($this->config as $key => $value) {
                $value = str_replace("'", '&apos;', $value);
                $html .= "<input type='hidden' name='{$key}' value='{$value}'/>";
            }
            $html .= "<input type='submit' value='ok' style='display:none;'></form>";
            return $html . "<script>document.forms['alipaysubmit'].submit();</script>";
    
    public function post_curl($url, $post){
            $ch = curl_init($url);
            $timeout = 6000;
            curl_setopt($ch, CURLOPT_POST, 1);
            curl_setopt($ch, CURLOPT_HEADER, 0);
            curl_setopt($ch, CURLOPT_FRESH_CONNECT, 1);
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
            curl_setopt($ch, CURLOPT_FORBID_REUSE, 1);
            curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);
    //本地测试 不验证证书
            curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); //不验证证书
            curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); //不验证证书
    
            $data_string = json_encode($post);
            curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);
            curl_setopt($ch, CURLOPT_HTTPHEADER, array(
                    "Content-Type: application/json; charset=utf-8",
                    "Content-Length: " . strlen($data_string))
            );
            $ret = curl_exec($ch);
            curl_close($ch);
            return $ret;
        }
    
    展开全文
  • 模拟Post请求

    万次阅读 2011-05-21 22:33:00
    #region 向Url发送post请求 /// /// 向Url发送post请求 /// /// <param name="postData">发送数据 /// 接受数据的Url /// 返回网站响应请求的回复

    网站得到Post过来的数据:

    展开全文
  • JAVA模拟post请求

    万次阅读 2016-04-29 19:44:17
    在存在form的场合下,我们可以模拟post请求,从而达到想要的效果。 但是,在某些场合下面,我们不想创建多个的form表单,而又想实现post请求,接下来,总结下解决办法。 post请求: public String ...

    在存在form的场合下,我们可以模拟post请求,从而达到想要的效果。

    但是,在某些场合下面,我们不想创建多个的form表单,而又想实现post请求,接下来,总结下解决办法。

    post请求:

    public String makeHtmlPageGet(String url, String[] parameters) throws Exception {
    
    	StringBuffer sbRtn = new StringBuffer();
    	sbRtn.append("<html>");
    	sbRtn.append("<head>");
    	sbRtn.append("<meta http-equiv='Content-Type' content='text/html; charset=UTF-8'>");
    	sbRtn.append("<title>登录中</title>");
    	sbRtn.append("</head>");
    	sbRtn.append(
    			"<form id=\"postsubmit\" name=\"postsubmit\" action=\"")
    			.append(url).append("\" method=\"post\">");
    
    	for(int i=0;i<parameters.length;i++){
    		String[] keyAndValue = parameters[i].split("=");
    		if(keyAndValue.length == 2){
    			sbRtn.append("<input type=\"hidden\" name=\"").append(keyAndValue[0])
    			.append("\" value=\"").append(keyAndValue[1])
    			.append("\"/>");
    		}else{
    			sbRtn.append("<input type=\"hidden\" name=\"").append(keyAndValue[0])
    			.append("\" value=\"\"/>");
    		}
    		
    	}
    	// submit按钮控件请不要含有name属性
    	sbRtn.append("</form>");
    	sbRtn.append("<script>document.forms['postsubmit'].submit();</script>");
    	sbRtn.append("</html>");
    	return sbRtn.toString();
    }
    <pre name="code" class="java">模拟一个页面,将需要post请求的参数进行拼接,通过js的submit提交进行post请求。
    
    
    //生成post请求页面
    result = makeHtmlPageGet(url, parameters);

    PrintWriter out = response.getWriter();
    out.println(new String(result.getBytes("UTF-8"),"ISO-8859-1"));
    解决post请求的需求。

    展开全文
  • Fiddler Composer 模拟post请求

    千次阅读 2016-05-13 19:49:06
    Fiddler Composer 模拟post请求模拟post请求的时候,发现服务器端无法接收post参数 发现原来的请求表头的设置问题 加上表头Content-Type: application/x-www-form-urlencoded后正常

    Fiddler Composer 模拟post请求

    在模拟post请求的时候,发现服务器端无法接收post参数
    这里写图片描述
    发现原来的请求表头的设置问题
    加上表头Content-Type: application/x-www-form-urlencoded后正常
    这里写图片描述

    展开全文
  • java模拟post请求

    千次阅读 2017-02-14 16:34:24
    利用java模拟post请求,有参数,参数格式为map形式 “`javapublic static void post(Integer i,String urlStr, Map, String> parameterMap) throws IOException { URL url = new URL(urlStr); HttpURLConnection
  • golang模拟post请求

    2019-05-11 22:37:07
    使用golang模拟post请求,首先用map封装数据,然后通过json.marshal方法转化成为[]byte类型,最后使用http.post方法 func main() { config := map[string]interface{}{} config["Id"] = 0 config["afa"] = "input...
  • 模拟post请求
  • 利用Fiddler模拟POST请求

    千次阅读 2016-09-07 11:26:57
    写后台服务器的时候,常用...我们常用的抓包工具Fiddler就可以模拟post请求 操作流程如下: 1.选择Composer选项卡2..非json格式(name1=valule1&name2=value2…),header头里面加:Content-Type: application/x-www
  • java模拟post请求发送json的例子

    千次阅读 2018-06-13 17:24:12
    java模拟post请求发送json,用两种方式实现,第一种是HttpURLConnection发送post请求,第二种是使用httpclient模拟post请求,package main.utils; import java.io.*;import java.net.HttpURLConnection;import java...
  • php模拟post请求发送文件

    千次阅读 2015-08-03 22:23:04
    由于项目需要,需要本地服务器接收数据后,再将数据转发到另外一台服务器上,故要用到模拟post请求发送数据,当然数据中也包含文件流。 curl是php比较常用的方式之一,一般代码如下: $params1 = "test"; $params2...
  • MOCO模拟post请求之返回JSON格式

    千次阅读 2019-06-19 18:20:19
    背景: 对接第三方H5、SDK时候,需要测试第三方数据与我方数据是否一致,但是测试没有接口请求秘钥,不能直接去...3.然后放到MOCO里,运行postman,实现moco模拟post请求, 4.最后就可以去进行数据比对测试了,传...
  • HttpAsyncClient之模拟post请求示例

    千次阅读 2016-11-03 18:13:56
    如果看到过我前些天写过的《轻松把玩HttpClient之模拟post请求示例》这篇文章,你再看本文就是小菜一碟了,如果你顺便懂一些NIO,基本上是毫无压力了。因为HttpAsyncClient相对于HttpClient,就多了一个NIO,这也是...
  • 轻松把玩HttpAsyncClient之模拟post请求示例

    万次阅读 热门讨论 2015-11-23 09:13:47
    如果看到过我前些天写过的《轻松把玩HttpClient之模拟post请求示例》这篇文章,你再看本文就是小菜一碟了,如果你顺便懂一些NIO,基本上是毫无压力了。因为HttpAsyncClient相对于HttpClient,就多了一个NIO,这也是...
  • ASP模拟POST请求异步提交数据的方法

    千次阅读 2018-05-31 01:39:52
    这篇文章主要介绍了ASP模拟POST请求异步提交数据的方法,本文使用MSXML2.SERVERXMLHTTP.3.0实现POST请求,需要的朋友可以参考下有时需要获取远程网站的某些信息,而服务器又限制了GET方式,只能通过POST数据提交,这个...
  • java 模拟post请求

    千次阅读 2016-11-25 11:30:23
    protected byte[] post(String path, Map, String> params, String encode, int timeout) throws Exception{ byte[] resultBuffer = null; StringBuilder parambuilder = new StringBuilder(""); if(params !...
  • postman模拟post请求

    千次阅读 2016-09-06 13:42:41
    发送json格式的数据 选择post请求方式,同时将header的content-type设置为application/json
  • django 实现web接口 python3模拟Post请求

    万次阅读 2017-04-25 15:58:10
    作为抛砖引玉,用python3实现百度云语音解析,首先需要模拟Post请求把音频压缩文件丢给百度解析。  但是遇到一个问题客户端怎麽丢数据都是返回错误,后来在本地用django搭建了一个接口模拟一下,发现还是有地方弄...
  • postman模拟post请求的四种请求体

    万次阅读 2018-09-25 21:42:45
    post类型的body中可以存放任意的内容格式,浏览器可以根据请求头中指定的content-type类型对请求体进行解析。下面介绍postman如何对四种典型的请求体进行模拟。 1. form-data 即multipart/form-data,它将表单的...
  • js模拟post请求

    千次阅读 2019-05-12 22:18:37
    // 查询按钮触发 $('#theQuery').click(function () { // 定义form表单 ...form method='post'></form>"); // 把表单添加到html的body里面 form.appendTo("body") // 给坡post路径 form.a...
  • 在进行接口测试时,会模拟post请求,发送不同的请求参数,返回不同的结果,今天我们就来分享一下,怎么用Fiddler工具模拟post请求: 打开Fiddler工具,在右侧点击“composer”的选项: 进入到了composer 的选项之后...
  • linux模拟POST请求

    千次阅读 2018-05-21 09:54:23
    curl -X POST http://172.21.128.170:9000/v2/diskdomain/domain/construct -d '{"name":"test1","desc":"test1","construct_type":1,"DtbDiskInfoList&...
  • 下面一段代码给大家介绍php curl模拟post请求的示例代码,具体代码如下: $uri = "http://www.cnblogs.com/test.php";//这里换成自己的服务器的地址 // 参数数组 $data = array ( 'name' =&gt; '...
  • 以下代码可以作为测试接收请求的程序直接复制使用: from flask import Flask, request app = Flask(__name__) @app.route('/service', methods=['POST']) def post_route(): if request.method == 'POST': ...
  • 用httpRequester模拟post请求上传文件,后来servlet的ServletFileUpload.parseRequest(req)一直为空,请求的数据在图片中, 后台代码如果使用jsp页面的form表单提交,可以正常解析,但是我这边要用接口去调用,有...
  • 实现post请求方式有很多种,比如postman等,但是有时候接口做了登录拦截,这个时候使用postman等工具要配置相关的cookie等信息,这个过程是很繁琐,最后也不一定能达到预期效果。 本篇使用chrom的console控制台,...
  • 轻松把玩HttpClient之模拟post请求示例

    万次阅读 多人点赞 2015-11-16 13:23:42
    HttpClient 是 Apache Jakarta Common 下的子项目,...许多需要后台模拟请求的系统或者框架都用的是httpclient。所以作为一个java开发人员,有必要学一学。本文提供了一个简单的demo,供初学者参考。 使用HttpClie
  • 使用HttpClient模拟POST请求

    千次阅读 2018-03-21 09:53:23
    HttpClient 是 Apache Jakarta Common 下的子项目,可以用来提供高效的、最新的、功能丰富的...当前官网最新版介绍页是:http://hc.apache.org/httpcomponents-client-4.5.x/index.html 许多需要后台模拟请求的系统...
  • AdvancedRestClient插件安装/模拟post请求

    千次阅读 2018-05-31 17:49:46
    一. 安装:1.下载下载压缩包,并解压链接:...gt;扩展程序 (3)选择解压好的文件夹,进行安装。3.启动 进入网页:chrome://apps/ 启动插件二. 模拟请求get请求模拟1. 请求路径填写2....
  • curl模拟post请求提交

    千次阅读 多人点赞 2016-03-11 14:14:16
    header('content-type:...charset=utf-8'); function curlPost($url,$data,$method){ $ch = curl_init(); //1.初始化 curl_setopt($ch, CURLOPT_URL, $url); //2.请求地址 curl_setopt($ch, CURLOPT_CUSTOMREQUE

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 98,248
精华内容 39,299
关键字:

模拟post请求