【发布时间】:2023-04-06 03:37:01
【问题描述】:
要从我的 PHP 代码向外部 url 发出 POST 请求,我使用以下 sn-p,在此处发布了许多主题:
function http_post($url, $data) {
$options = ['http' => ['header' => "Content-type: application/x-www-form-urlencoded\r\n",'method' => 'POST','content' => http_build_query($data)]];
$result = file_get_contents($url, false, stream_context_create($options));
if ($result === FALSE) { /* Handle error */}
return $result;
}
这可行,但我正在努力解决“处理错误”部分。我应该如何实现这个?更具体地说:
- 如何获得错误的文本版本以存储在我的日志中?其中一些我当然可以通过将 file_get_contents 包含在 try-catch 块中来捕获,但是静默返回
false的情况呢? - 我如何知道这是“超时”/“连接问题”类型的错误(在这种情况下我想再试一次)或“找不到网站”/“访问被拒绝”/等类型的错误。 (在这种情况下我不想再试一次)?
【问题讨论】:
-
可以查看响应头并从那里确定。 stackoverflow.com/questions/15620124/…
-
我建议你使用 PHP Curl。它简单而强大。如果您需要示例,请告诉我。
标签: php file-get-contents