source-php-request3

发送数据的简单代码:

要使代码可以使用php直接执行,程序里使用的路径是绝对路径。

主要是将文件放到指定的目录下,读取文件中的匹配行,执行需要的请求操作。

<?php
ini_set('memory_limit','2048M');
set_time_limit(0);

function curlRequest($gets,$host="rubbish.com", $Post = 80) {
    $handle = fsockopen($host, $Post, $errorCode, $errorMsg, 60);
    $header = "GET $gets HTTP/1.1\r\n";
    $header .= "Host: $host\r\n";
    $header .= "Connection: keep-alive\r\n\r\n";
    fwrite($handle, $header);

    //这里可以参考request2来解析请求会的数据,包括请求头,但在发请求的过程中,该操作相当费劲。

    fclose($handle);
    return $errorCode;
}

//get all files ,and save to array 
$starTime = microtime(true);

//使用这样,只是为了让php可以在控制台执行,下面是读取文件的操作,is_file参数是一个绝对路径。
$path = dirname(__FILE__);
$dir = "$path/log3";

$fileSet = array();
if (is_dir($dir)) {
    if ($dh = opendir($dir)) {
        while (($file = readdir($dh)) !== false) {
            if($file == '.' || $file == '..')
                continue;
            $filePath = "$dir/".$file;
            if(is_file($filePath)){
                $fileSet[] = $filePath;
            }
        } 
        closedir($dh);
    }
}

$header = "/rubbish.html?";
$request = $header;
$i = 0;
$m = 0;
foreach($fileSet as $value){
    //set pattern to filter
    $regex = "/.*pattern\.(aspx|php|html)\?(.*) HTTP\/1\.0.*/i";
    $handle = fopen($value,'r');
    if($handle){
        while(!feof($handle)){
            $line = fgets($handle);
            if(preg_match($regex,$line,$match)){
                //rebuild request
                $request = $request.$match[2];
                // echo $request;
                ++$m;
                echo ".";
                $ret = curlRequest($request);
                // $ret = true;
                if($ret){
                    ++$i;
                }
                usleep(200);
                $request = $header;
            }
        }
    }
    fclose($handle);
}

$endTime = microtime(true);
echo "total : $m, fail request $i, waste time:".($endTime-$starTime);
exit;

在控制台,大概30分钟左右,平均发大概6万请求,读文件平均1.2G,耗时30分钟左

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了小程序应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!
"414 Request-URI Too Large"是一个HTTP错误状态码,表示所发送的HTTP请求中的URI(统一资源标识符)长度超过了服务器能够处理的限制。 这个错误通常由服务器配置或限制造成,对于Apache服务器来说,这个错误表示URL的长度超出了服务器的限制。 要解决这个问题,可以考虑以下几个方案: 1. 缩短URL的长度:可以通过删除不必要的查询参数、路径或缩短路径名称来减小URL的长度。 2. 使用POST请求代替GET请求:GET请求将参数包含在URL中,而POST请求将参数包含在请求体中,因此使用POST请求可以避免URL过长的问题。 3. 使用更高版本的HTTP协议:HTTP/1.1对URI的长度限制要宽松一些,可以考虑升级到更高版本的HTTP协议来解决这个问题。 综上所述,"414 Request-URI Too Large"错误表示HTTP请求中的URI长度超过了服务器的限制,可以通过缩短URL的长度、使用POST请求或升级HTTP协议等方法来解决这个问题。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [php使用get和post传递数据出现414 Request-URI Too Large的解决方案](https://blog.csdn.net/weixin_41290949/article/details/132169714)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [Apache Request-URI Too Large错误解决方法](https://download.csdn.net/download/weixin_38590738/14089138)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值