为了账号安全,请及时绑定邮箱和手机立即绑定

PHP GuzzleHttp 无法获取到返回结果

PHP GuzzleHttp 无法获取到返回结果

PHP
温温酱 2019-03-11 05:56:19
$client = new GuzzleHttp\Client; $response = $client->request('POST', 'http://www.jgggbbs.cn/member.php?mod=logging&action=login&loginsubmit=yes&handlekey=login&loginhash=LRTTI&inajax=1', array( 'form_params' => array( 'username'=>'test', 'password'=>'fwefwegweg' ), 'allow_redirects' => true, 'headers' => [ 'User-Agent' => 'Mozilla/5.0 (Windows NT 10.0; …) Gecko/20100101 Firefox/61.0', 'content-type' => 'application/x-www-form-urlencoded', 'cache-control' => 'no-cache' ] )); print_r($response->getBody()); //这里输出为空,无法获取到返回结果 用PHP GuzzleHttp来登录某个论坛,这里先不管用户名和密码有没有错,也不管提交的参数有没有错,即使有错,网站也会返回出错的文字提示,但是现在我获取不到任何返回的文字,请问是怎么回事呢? 下面是改用php curl来发送这请求,这个能获取到返回结果(同样先不管是否登录成功,只要有返回结果就行): $curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_URL => "http://www.jgggbbs.cn/member.php?mod=logging&action=login&loginsubmit=yes&handlekey=login&loginhash=LRTTI&inajax=1", CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => "", CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 30, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => "POST", CURLOPT_POSTFIELDS => "username=test&password=test", CURLOPT_HTTPHEADER => array( "cache-control: no-cache", "content-type: application/x-www-form-urlencoded" ), )); $response = curl_exec($curl); $err = curl_error($curl); curl_close($curl); if ($err) { echo "cURL Error #:" . $err; } else { echo $response; //这里能获取反返回结果 }
查看完整描述

2 回答

?
九州编程

TA贡献1785条经验 获得超4个赞

json_decode($response->getBody()->getContents(), true)
查看完整回答
反对 回复 2019-03-18
?
浮云间

TA贡献1829条经验 获得超4个赞

先看看状态码吧

$response->getStatusCode();

正常的 $response->getBody() 返回的 stream 对象

查看完整回答
反对 回复 2019-03-18
  • 慕盖茨3135569
    慕盖茨3135569
    麻烦问下大佬,我getBody()获取的就是stream对象,但是我想要那个接口给我返回的信息怎么取,getContent()么?
  • 慕盖茨3135569
    慕盖茨3135569
    获取到了,是getContents()
  • 2 回答
  • 0 关注
  • 3839 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信