将大量CURL请求发送到单个页面

问题描述 投票:1回答:1

我有来自CodeCanyon的这个脚本ProtectedLinks。它使用表单输入创建临时链接。我需要它的功能。所以我决定使用CURL。首先,我做出了正确的决定吗?

在我的项目中,我必须发送30个CURL请求(直接链接和页面所需的其他$ _POST数据,这些数据将这些数据转换为临时链接并将其存储在数据库中)到此页面。这是一项繁重的工作。

它有时会使我的页面停止并插入一半非常不愉快的数据。我该怎么办?

有没有办法我发送一个请求,一个数组包含所有数据,同时做同样的事情。

这是我的数据:

$fields = array
(  
'url' => $url_to_be_coded,  
'f_name' => "Package " . $product_id,  
'f_title' => "Package " . $product_id,  
'f_desc' => "Part" . $part,  
'usertype' => 'm',  
'exptime' => '72',  
'exprespect' => 'L',  
'authority' => "User Requested Again",  
'part_number' => $part  
);  

我想在一个请求或电话中发送很多这个。使用相同的键,其中数组中的项目数量不明确。当然,在着陆页中处理这些数据

php curl
1个回答
2
投票

Did I make the right decision? - 是的,对我来说听起来不错。

It sometimes make my page stop and insert half data which is very unpleasant. What should I do?是什么f?正如@Johnson在评论中所说,将它包装在一个事务中,所以它变成了一切或者什么都不成交,但也试图找出为什么这有时会发生,它不应该...... php最大执行时间? nginx proxy_read_timeout? php ignore_user_abort()? CURL CURLOPT_TIMEOUT?不管它是什么,追踪它,并在可能的情况下修复它。它会在错误日志中生成任何内容吗?

I want to send a lot of this, in one request or call. with the same keys where number of items in array is not clear. and of course process this data in landing page - 没问题,而不是接受你的字段的单个数组,更改代码以接受字段数组的数组,并将当前字段处理代码包装在foreach($_POST as $field){/*process single field just like in the old code*/}

  • 但是,如果它是大量的数据,并且您没有将其上传到本地局域网但是通过较慢的网络,您可能希望在发送之前将其压缩,例如,在客户端上

$fields=gzcompress(http_build_query($fields),9);CURLOPT_HTTPHEADER=>['Content-Type: application/x-www-urlencoded','Content-Encoding: gzip'];

并在服务器上

if($_SERVER['HTTP_CONTENT_ENCODING']==='gzip'){
    parse_str(gzuncompress(file_get_contents('php://input')),$_POST);
}
© www.soinside.com 2019 - 2024. All rights reserved.