Laravel中如何从Mailgun的GuzzleHttp响应对象获取HTTP状态码
解决Laravel中提取Mailgun响应状态码的问题
嘿,我来帮你搞定这个状态码提取的问题!你之前走了点弯路,咱们一步步理清楚:
你的核心错误
你尝试把响应对象序列化后用json_decode解析,这完全行不通——因为serialize()生成的是PHP专属的序列化字符串,根本不是JSON格式,所以json_decode肯定会报错,这是方向错了。
正确的提取方式
从你给出的序列化结构来看,这个响应对象本身就是一个包含http_response_code属性的stdClass,你根本不需要序列化,直接访问属性就行:
// 假设 $result 是你从Mailgun接收到的响应对象 $http_response_code = $result->http_response_code;
这样就能直接拿到200这个值,存入变量里了。
额外说明:如果是原始Guzzle响应对象
如果你拿到的是Guzzle原生的\GuzzleHttp\Psr7\Response对象(而不是Mailgun封装后的stdClass),那获取状态码的方法是调用它的内置方法:
$http_response_code = $result->getStatusCode();
调试小技巧
如果你不确定对象的结构,可以先打印出来看看:
var_dump($result); // 或者用Laravel更美观的调试方法: dd($result);
这样就能清晰看到对象的所有属性和方法,避免瞎猜。
内容的提问来源于stack exchange,提问作者Vlad
相关产品推荐
相关产品推荐

