XML帖子在php中给出错误

时间:2013-03-04 10:31:27

标签: php xmlhttprequest

使用post方法提交xml数据但是它给出了以下错误

ASP 500 Error

An error occurred processing the page you requested.
Please see the details below for more information.
COM Error Number    -2146827864 (0x800A01A8)
File Name   /vm/VM_jeune/includes/partenaires_calcul_primes.asp
Line Number     110
Brief Description   Object required: 'objDOMXPCML.selectSingleNode(...)'

<?php
/* 
Online PHP Examples with Source Code
website: http://4evertutorials.blogspot.in/
*/
$xml_data ='<aatavailreq1>'.
    '<agency>'.
        '<iata>1234567890</iata>'.
        '<agent>lgsoftwares</agent>'.
        '<password>mypassword</password>'.
        '<brand>phpmind.com</brand>'.
    '</agency>'.
    '<passengers>'.
        '<adult age="" id="1"></adult>'.
        '<adult age="" id="2"></adult>'.
    '</passengers>'.
'<hotelavailreq1>'.
'<destcode>JHM</destcode>'.
        '<hotelcode>OGGSHE</hotelcode>'.
        '<checkindate>101009</checkindate>'.
        '<checkoutdate>101509</checkoutdate>'.
        '<usefield>1</usefield>'.
  '</hotelavailreq1>'.  
  '</aatavailreq1>';


$URL = "http://www.example.com/vm/makessense/calcul_primes.asp";

   $ch = curl_init($URL);
 //  curl_setopt($ch, CURLOPT_MUTE, 1);
   curl_setopt($ch, CURLOPT_URL, $URL );
   curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
   curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
   curl_setopt($ch, CURLOPT_POST, 1);
   curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: text/xml'));
   curl_setopt($ch, CURLOPT_POSTFIELDS, "$xml_data");
   curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
   $output = curl_exec($ch);
   curl_close($ch);

 print_r($output);
?>

它给出500错误不接受任何数据请告诉我这段代码中的错误是什么。

1 个答案:

答案 0 :(得分:0)

错误500表示接收XML文件的程序已崩溃。我们可以看到它有一个bug,因为它没有优雅地处理错误条件,但我们无法看到那个bug是什么,也不知道它是如何受输入数据影响的,因为ASP崩溃消息没有足够的信息来处理它进行。

所以你问题的基本答案是:我们不知道,我们无法分辨。唯一可以告诉你问题是什么的人将是网站崩溃的所有者。

您可以使用Fiddler之类的工具来检查HTTP流量。这将帮助您证明您的代码正确地发送XML字符串。您还可以使用XML验证工具来证明XML是有效的。

但是,如果这些测试证明你的结果没问题(我怀疑他们会这样做),那么除了向接收XML的人询问他们的软件有什么问题以及如何解决问题之外别无他法;它可能需要代码修复,或者他们可以帮助您解决问题。无论哪种方式,我们都无法在这里为您提供帮助。