7.0 提供了 Guzzle HTTP 客户端,请问如何先登录后操作?

先上官方文档
HTTP 客户端《Laravel 7 中文文档》
我有个付费的api,需要先登录才可以获取到数据;
首先使用用户名登陆(但是没成功);

$login= 'http://test.com/login'; 
//登陆页面并不是json所以使用的asForm发送 URL 编码的请求
 $response =Http::asForm($login,['username'=>'maomao','password'=>'mima']);
 dd($response->body()); //返回登陆失败

只有登陆成功才可以请求api,所以要先登录,但是这里登陆不成功;
请问下我是哪里写错了吗?官方的这个HTTP客户端跟 Guzzle HTTP 客户端 有很大区别?希望哪位同学可以指点迷经 万分感谢了!这个问题已经研究4个小时无果了

《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
最佳答案

不只是返回失败吧, 而是 方法没写对, 参数不应该在 asForm() 而是在 post() 里

 $response = Http::asForm()->post($login,[
    'username'=>'maomao',
    'password'=>'mima'
]);
3年前 评论
讨论数量: 5

我没从文档上看到你这两段代码的来源

3年前 评论
李小明 (楼主) 3年前
小李世界 3年前
李小明 (楼主) 3年前

file 我没从文档上看到asForm方法是发送请求的意思

file 携带请求头的示例,文档上也有,你看过吗

3年前 评论
李小明 (楼主) 3年前
李小明 (楼主) 3年前
pigzzz (作者) 3年前

实现登录就是先调用一次登录接口,登录成功会返回对应的 cookie 信息或者 API token 表示你登录成功了,你可以把 cookie 或者 token 存到文件或者 redis, 下次请求的时候带上。自己一般都是先 postman 看下对应的接口请求或者返回参数,然后再操作 & 验证。

3年前 评论

不只是返回失败吧, 而是 方法没写对, 参数不应该在 asForm() 而是在 post() 里

 $response = Http::asForm()->post($login,[
    'username'=>'maomao',
    'password'=>'mima'
]);
3年前 评论
野犭

asForm 不会直接请求,只是附带请求头而已,所以还需要在后面调用具体的请求方法 file

3年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!