too long

I want send xml like this through the soup client:

<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:hot="http://TekTravel/HotelBookingApi">
   <soap:Header xmlns:wsa="http://www.w3.org/2005/08/addressing">
      <hot:Credentials UserName="test" Password="test@123"/>
      <wsa:Action>http://test/HotelBookingApi/CountryListRequest</wsa:Action>
      <wsa:To>http://api.test.in/HotelAPI_V7/HotelService.svc</wsa:To>
   </soap:Header>

   <soap:Body>
      <hot:CountryListRequest/>
   </soap:Body>
</soap:Envelope>

But it send xml like this:

<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" xmlns:ns1="http://TekTravel/HotelBookingApi">
    <env:Header>
        <ns1:Credentials UserName="test" Password="test@123"/>
        <ns1:Action>http://test/HotelBookingApi/HotelSearch</ns1:Action>
        <ns1:To>http://api.test.in/HotelAPI_V7/HotelService.svc</ns1:To>
    </env:Header>
    <env:Body>
        <ns1:CountryListRequest/>
    </env:Body>
</env:Envelope>

api need exact same xml like the first one.I use Laravel 5.2 and this is my code:

<?php

namespace App\Model\Hotel;

use Illuminate\Database\Eloquent\Model;

use SoapClient;
use SoapHeader;
use SoapVar;

class HotelTBO extends Model
{

    //Credentials
    var $Credentials = ['UserName' => 'test', 'Password' => 'test@123'];

    //WSDL
    var $wsdl = 'http://api.tbotechnology.in/HotelAPI_V7/HotelService.svc?wsdl';

    //Actions
    var $ActionHotelSearch = "http://TekTravel/HotelBookingApi/HotelSearch";

    //NS
    var $NS = "http://TekTravel/HotelBookingApi";

    //TO
    var $ToHotelSearch = "http://api.tbotechnology.in/HotelAPI_V7/HotelService.svc";

    public function testSearch()
    {

        $client = new SoapClient(public_path('\assets\file\TBO.wsdl'), array('soap_version' => SOAP_1_2, 'trace' => 1, "exceptions" => 0));


        $HeaderVar = new SoapVar($this->HeaderXML, XSD_ANYXML, null, null, null);

        $Headers[] = new SoapHeader($this->NS, "Credentials", $this->Credentials,false);
        $Headers[] = new SoapHeader($this->NS, "Action", $this->ActionHotelSearch);
        $Headers[] = new SoapHeader($this->NS, "To", $this->ToHotelSearch);

        $client->__setSoapHeaders($Headers);
        $result = $client->__soapCall('CountryList', []);


    }

There's a package called https://github.com/BeSimple/BeSimpleSoap but there are no any documentation for that. many thanks for the help

This is not possible to achieve only using php soap client.

What error do you receive while sending your request? With this code:

public function testSearch()
{

    $client = new SoapClient($this->wsdl, array('soap_version' => SOAP_1_2, 'trace' => 1, "exceptions" => 0));
    $cred_ns = 'http://TekTravel/HotelBookingApi';
    $action_ns = 'http://www.w3.org/2005/08/addressing';

    $credentialHeader = ['UserName' => 'test', 'Password' => 'test@123'];
    $actionHeader = 'http://TekTravel/HotelBookingApi/CountryList';
    $toHeader = 'http://api.test.in/HotelAPI_V7/HotelService.svc';

    $Headers[] = new SoapHeader($cred_ns, 'Credentials', $credentialHeader , false);
    $Headers[] = new SoapHeader($action_ns, "Action", $actionHeader, false);
    $Headers[] = new SoapHeader($action_ns, "To", $toHeader, false);

    $client->__setSoapHeaders($Headers);
    $result = $client->__soapCall('CountryList', []);
    print_r($client->__getLastRequest());
    echo PHP_EOL;
    print_r($result);
}

I receive request like:

<?xml version="1.0" encoding="UTF-8"?>
<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" xmlns:ns1="http://TekTravel/HotelBookingApi" xmlns:ns2="http://www.w3.org/2005/08/addressing">
   <env:Header>
      <ns1:Credentials UserName="test" Password="test@123"/>
      <ns2:Action>http://TekTravel/HotelBookingApi/CountryList</ns2:Action>
      <ns2:To>http://api.test.in/HotelAPI_V7/HotelService.svc</ns2:To>
    </env:Header>
    <env:Body>
        <ns1:CountryListRequest/>
    </env:Body>
</env:Envelope>

And authorisation error as the result: stdClass Object

(
[Status] => stdClass Object
    (
        [StatusCode] => 02
        [Description] => LoginErr: Login Failed.
    )
)