Marcin Kostrzewa
Marcin Kostrzewa

Reputation: 595

Cant connect to xapi using PHP cURL

I try to login to xtb api ( xtrade brokers api demo) and I can't do it My code below:

$headers = (object) [
        'command' => 'login',
            'arguments' => (object) [
            'userId' => 'myuserID',
            'password' => 'myPassword'
                                    ]
                    ];

$object = json_encode($headers);
    
$curl = curl_init();
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_URL, 'xapi.xtb.com');
curl_setopt($curl, CURLOPT_PORT, 5124);
curl_setopt($curl, CURLOPT_HTTPHEADER, $object);
$ret = curl_exec($curl);
$error = curl_error($curl);
$info = curl_getinfo($curl);
print_r($ret);
echo "<br><br>";
print_r($error);
echo "<br><br>";
print_r($info);
echo "<br><br>";

My output response

Failed to connect to xapi.xtb.com port 5124 after 81 ms: Connection refused

Upvotes: 0

Views: 380

Answers (1)

user21147659
user21147659

Reputation:

Try this:

<?php
        $host = "xapi.xtb.com";
        $port = 5124;
        $user = '10000';
        $pass = 'secret_password';

        $ssl_context = stream_context_create(array(
                'ssl' => array(
                        'verify_peer' => false,
                        'verify_peer_name' => false,
                        'allow_self_signed' => true
                )
        ));

        $socket = stream_socket_client("ssl://$host:$port", $errno, $errstr, 5, STREAM_CLIENT_CONNECT, $ssl_context);

        if (!$socket) {
                die("Not connect: ($errno) $errstr");
        }

        $cmd = json_encode(array (
          'command' => 'login',
          'arguments' => array (
            'userId' => $user,
            'password' => $pass,
          ),
        ) );



        fwrite($socket, $cmd);

        $result = fread($socket, 1024);
        echo "Result from server: $result";

        fclose($socket);

Upvotes: 1

Related Questions