如何从RapidMiner Web Service获取JSON数据到Laravel框架?
解决Laravel连接RapidMiner Web Service异常问题
首先你代码里的核心问题:Laravel Http客户端的get方法中,第二个参数是查询字符串参数,你把认证信息auth放在这个位置,会导致认证信息被当作URL的query参数传递,而非HTTP基础认证的请求头,这是错误的。
修正后的代码
方式1:使用withBasicAuth方法(推荐)
$client = Http::withBasicAuth('admin', '94k0z4007') ->get('http://desktop-qo1l6ph:8080/api/rest/process/procTrain', [ 'nim' => '1011381419228' ]); // 查看响应状态码和具体内容,定位错误细节 dd($client->status(), $client->body());
方式2:通过请求选项传递auth
$client = Http::get('http://desktop-qo1l6ph:8080/api/rest/process/procTrain', [ 'nim' => '1011381419228' ], [ 'auth' => ['admin', '94k0z4007'] ]); dd($client->status(), $client->body());
额外排查点
- 若为本地测试,尝试把
desktop-qo1l6ph换成localhost或127.0.0.1,确认主机名能被Laravel服务器解析 - 检查RapidMiner的8080端口是否对外开放,且Laravel服务器能正常访问该端口
- 验证RapidMiner的用户名
admin和密码94k0z4007是否正确 - 确认RapidMiner中存在
procTrain流程,且该流程正确接收nim参数 - 利用
$client->status()查看HTTP状态码、$client->body()查看响应内容,可快速定位具体错误(比如401认证失败、404流程不存在等)
内容的提问来源于stack exchange,提问作者Iqbal Malik Alfaruq
相关产品推荐
相关产品推荐

