首页 > 解决方案 > 如何使用控制器从 laravel 中的 enom api 获取数据

问题描述

通过这个链接

https://resellertest.enom.com/interface.asp?command=check&sld=enom&tld=com&responsetype=xml&uid=resellid&pw=resellpw

如何使用控制器在 laravel 中获取以下数据。

<interface-response>
<DomainName>enom.com</DomainName>
<RRPCode>211</RRPCode>
<RRPText>Domain not available</RRPText>
<Command>CHECK</Command>
<APIType>API.NET</APIType>
<Language>eng</Language>
<ErrCount>0</ErrCount>
<ResponseCount>0</ResponseCount>
<MinPeriod>1</MinPeriod>
<MaxPeriod>10</MaxPeriod>
<Server>sjl1vwresell_t</Server>
<Site>eNom</Site>
<IsLockable>True</IsLockable>
<IsRealTimeTLD>True</IsRealTimeTLD>
<TimeDifference>+8.00</TimeDifference>
<ExecTime>0.328</ExecTime>
<Done>true</Done>
<TrackingKey>1f5b6d77-f715-42af-94a2-a30e0a40f847</TrackingKey>
<RequestDateTime>5/2/2018 12:58:22 AM</RequestDateTime>
<debug/>
</interface-response>

如何将 url 传递给控制器​​并在视图中显示数据。

标签: laravellaravel-5laravel-4laravel-5.2

解决方案


你可以使用这个库: https ://github.com/ixudra/curl

在您的控制器中:

use Ixudra\Curl\Facades\Curl;

public function test()
{
    $response = Curl::to('https://resellertest.enom.com/interface.asp?command=check&sld=enom&tld=com&responsetype=xml&uid=resellid&pw=resellpw')
        ->get();
    //dd($response); //check if we are getting a response
    return view('index', array(
        'response' => $response,
    ));
}

数据转储dd($response);将如下所示:

在此处输入图像描述

回答评论中的另一个问题:

1st您的表单应该路由到控制器中的方法,并且表单(POST 方法)输入应该具有:

<input type="text" name="sld">
<input type="text" name="tld">
...
<input type="hidden" name="_token" value"{{ csrf_token() }}">

2nd将表单请求捕获到控制器中的方法:

use Illuminate\Http\Request;

public function test(Request $request)
    {
        $sld = $request['sld'];
        $tld = $request['tld'];
        //if you want, initialize more variables here...

        $response = Curl::to('https://resellertest.enom.com/interface.asp?command=check&sld='. $sld .'&tld='. 
$tld .'&responsetype=xml&uid=resellid&pw=resellpw')
            ->get();
        //dd($response); //check if we are getting a response
        return view('index', array(
            'response' => $response,
        ));
    }

推荐阅读