I am trying to make a request to send by http address to the TNT Express service to connect the price module:
$xml = '<?xml version="1.0" encoding="UTF-8" standalone="no"?>'.PHP_EOL; $xml .= '<PRICEREQUEST>'.PHP_EOL; $xml .='<LOGIN>'.PHP_EOL; $xml .= '<COMPANY>xxxxx</COMPANY>'.PHP_EOL; $xml .= '<PASSWORD>xxxxx</PASSWORD>'.PHP_EOL; $xml .= '<APPID></APPID>'.PHP_EOL; $xml .= '</LOGIN>'.PHP_EOL; $xml .= '<DATASETS>'.PHP_EOL; $xml .='<COUNTRY>1.0</COUNTRY>'.PHP_EOL; $xml .= '<CURRENCY>1.0</CURRENCY>'.PHP_EOL; $xml .= '<POSTCODEMASK>1.0</POSTCODEMASK>'.PHP_EOL; $xml .='<TOWNGROUP>1.0</TOWNGROUP>'.PHP_EOL; $xml .='<SERVICE>1.0</SERVICE>'.PHP_EOL; $xml .='<OPTION>1.0</OPTION>'.PHP_EOL; $xml .='</DATASETS>'.PHP_EOL; $xml .='<PRICECHECK>'.PHP_EOL; $xml .='<RATEID>rate1</RATEID>'.PHP_EOL; $xml .='<ORIGINCOUNTRY>GB</ORIGINCOUNTRY>'.PHP_EOL; $xml .='<ORIGINTOWNNAME></ORIGINTOWNNAME>'.PHP_EOL; $xml .='<ORIGINPOSTCODE></ORIGINPOSTCODE>'.PHP_EOL; $xml .='<ORIGINTOWNGROUP></ORIGINTOWNGROUP>'.PHP_EOL; $xml .='<DESTCOUNTRY>AU</DESTCOUNTRY>'.PHP_EOL; $xml .='<DESTTOWNNAME></DESTTOWNNAME>'.PHP_EOL; $xml .='<DESTPOSTCODE></DESTPOSTCODE>'.PHP_EOL; $xml .='<DESTTOWNGROUP></DESTTOWNGROUP>'.PHP_EOL; $xml .='<CONTYPE>D</CONTYPE>'.PHP_EOL; $xml .='<CURRENCY>GBP</CURRENCY>'.PHP_EOL; $xml .='<WEIGHT>0.2</WEIGHT>'.PHP_EOL; $xml .= '<VOLUME>0</VOLUME>'.PHP_EOL; $xml .= '<ITEMS>1</ITEMS>'.PHP_EOL; $xml .='</PRICECHECK>'.PHP_EOL; $xml .='</PRICEREQUEST>'; $url = 'iconnection.tnt.com'; $lenght = strlen($xml)+7; $headers = array( "POST PriceGate.asp HTTP/1.0", "Accept:*/*", "User-Agent: PriceGate_socket/1.0", "Content-type: application/x-www-form-urlencoded", "Content-length: $lenght", ); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 1); curl_setopt($ch, CURLOPT_PORT, 81); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); curl_setopt($ch, CURLOPT_HEADER, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $xml); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_VERBOSE, true); $result = curl_exec($ch); if (empty($result)) { // some kind of an error happened die(curl_error($ch)); curl_close($ch); // close cURL handler } else { $info = curl_getinfo($ch); curl_close($ch); // close cURL handler if (empty($info['http_code'])) { die("No HTTP code was returned"); } else { // // echo results echo "The server responded: \n"; echo $info['http_code']; } } echo '<pre>'; print_r ($result); echo '</pre>';
But I got the answer: could not connect to the host
What am I doing wrong? Mayby have another solution for interacting with tnt services or getting debugging information? Many thanks
UPDATE
Now the answer:
The server responded: 405 HTTP/1.1 405 Method Not Allowed Allow: OPTIONS, TRACE, GET, HEAD Content-Length: 1564 Content-Type: text/html Server: Microsoft-IIS/6.0 X-Powered-By: ASP.NET Date: Wed, 11 Sep 2013 10:12:01 GMT
UPDATE 2
Here is my new php code: http://pastebin.com/a4s4yLLu
Now I got the answer: Fatal error: Curl failed with error #7: couldn't connect to host in /home/client/public_html/tnt/test3.php on line 104