尝试连接到外部API。 在第一个功能中,我已经收到带有身份验证的令牌。 要发送POST请求,我需要将从第一个函数收到的xtoken放在第二个函数中。 我不知道如何向第二个函数(registerUser)发送值
Route::get('/connect', 'Guzzlecontroller@registerUser')->name('registeruser');
这是我的路线文件
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use GuzzleHttp\Exception\GuzzleException;
use GuzzleHttp\Client;
use App\Http\Controllers\Auth\RegisterController;
class GuzzleController extends Controller
{
public function Gettoken()
{
$client = new \GuzzleHttp\Client();
$request = $client->get(
'http://api01.oriental-game.com:8085/token',
[
'headers' => [
'X-Operator' => 'mog189b',
'X-key' => 'sQxAVNaEMe0TCHhU',
]
]
);
$response = $request->getBody();
$tokenReturn = json_decode($response, true);
$xtoken = array("x-token:" . $tokenReturn['data']['token'],);
$this->registerUser($xtoken);
}
public function registerUser($xtoken)
{
$client = new \GuzzleHttp\Client();
$url = "http://api01.oriental-game.com:8085/register";
$request = $client->post($url, [
'headers' => $xtoken,
'body' => [
'username' => 'test1',
'country' => 'Korea',
'fullname' => 'test user1',
'language' => 'kr',
'email' => 'testuser1@test.com',
]
]);
$response = $request->send();
dd($response);
}
}
函数App \ Http \ Controllers \ GuzzleController :: registerUser()的参数太少,已传递0个且恰好期望1个
这是我得到的错误。 请帮助我如何将$ xtoken值发送到registerUser函数
答案 0 :(得分:0)
问题是Laravel直接调用registerUser而不是通过getToken进行调用。因此,令牌永远不会被检索并传递给register操作。
而不是从registerUser()
调用Gettoken()
。让Gettoken()
返回令牌并从registerUser()
public function Gettoken()
{
...
return $xtoken;
}
public function registerUser()
{
$xtoken = $this->Gettoken();
...
}