作为Drupal 7站点注册的一部分,我要求用户输入一个有效的电话号码,而不是只做简单的验证,我使用Numverify.comAPI来验证每个国家号码的格式,并获得额外的信息,这是通过一个curl请求来完成的,该请求返回一个json对象。有一天,API在几个小时内无法访问,由于我缺乏远见,用户无法注册,直到我绕过API请求。为了防止将来发生这种情况,我需要能够正确处理错误代码,如408。有人能告诉我如何复制超时请求,本地或其他,用于测试目的吗?
4bbkushb1#
制作一个php页面,内容如下:<?php http_response_code(408);,然后用curl取它。
<?php http_response_code(408);
vnzz0bqm2#
你也可以用最新版本的Firefox Development Edition来模拟慢速网络。但是我不确定你能在多大程度上控制延迟。查看article了解更多关于这个功能的信息。
mum43rcc3#
多亏了@hanshenrik,我才得以将他的回答与我自己的研究结合起来。为了使用curl进行测试和处理,我创建了一个包含http_response_code(408);的PHP文件,然后从index.php文件启动curl:
http_response_code(408);
$curl = curl_init(); curl_setopt($curl, CURLOPT_URL, "timeout.php"); curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE); $result = curl_exec($curl); $httpcode = curl_getinfo($curl, CURLINFO_HTTP_CODE); curl_close($curl); echo $httpcode;
重要的一行是curl_get_info部分,它将返回上一页的http响应代码,然后我可以在index.php文件中适当地处理这段代码。我真的不知道这是否是最有效的方法,所以如果有人可以改进我的答案,请随意。在此期间,我希望这能帮助其他人!
curl_get_info
fjnneemd4#
不太清楚D7的具体情况,但我知道你可以用GuzzleHttp来尝试捕获RequestException,它包含400和500系列的响应代码。你可以另外设置一个超时,这样如果它在X秒内没有响应,就可以继续。你也可以为你的cURL对象提供CURLOPT_CONNECTTIMEOUT和CURLOPT_TIMEOUT选项,就像https://stackoverflow.com/a/11066378/7118098那样
4条答案
按热度按时间4bbkushb1#
制作一个php页面,内容如下:
<?php http_response_code(408);
,然后用curl取它。vnzz0bqm2#
你也可以用最新版本的Firefox Development Edition来模拟慢速网络。但是我不确定你能在多大程度上控制延迟。查看article了解更多关于这个功能的信息。
mum43rcc3#
多亏了@hanshenrik,我才得以将他的回答与我自己的研究结合起来。
为了使用curl进行测试和处理,我创建了一个包含
http_response_code(408);
的PHP文件,然后从index.php文件启动curl:重要的一行是
curl_get_info
部分,它将返回上一页的http响应代码,然后我可以在index.php文件中适当地处理这段代码。我真的不知道这是否是最有效的方法,所以如果有人可以改进我的答案,请随意。
在此期间,我希望这能帮助其他人!
fjnneemd4#
不太清楚D7的具体情况,但我知道你可以用GuzzleHttp来尝试捕获RequestException,它包含400和500系列的响应代码。你可以另外设置一个超时,这样如果它在X秒内没有响应,就可以继续。你也可以为你的cURL对象提供CURLOPT_CONNECTTIMEOUT和CURLOPT_TIMEOUT选项,就像https://stackoverflow.com/a/11066378/7118098那样