【问题标题】:SoapFault exception: [HTTP] Bad RequestSoapFault 异常:[HTTP] 错误请求
【发布时间】:2012-07-09 17:50:01
【问题描述】:

您好,我从 eway 令牌支付 api 集成中收到此错误。

SoapFault 异常:[HTTP] 错误请求

当我运行以下代码时,然后从肥皂中运行函数

var_dump($client->__getFunctions());

函数列表是

array
  0 => string 'CreateCustomerResponse CreateCustomer(CreateCustomer $parameters)' (length=65)
  1 => string 'UpdateCustomerResponse UpdateCustomer(UpdateCustomer $parameters)' (length=65)
  2 => string 'QueryCustomerResponse QueryCustomer(QueryCustomer $parameters)' (length=62)
  3 => string 'QueryCustomerByReferenceResponse QueryCustomerByReference(QueryCustomerByReference $parameters)' (length=95)
  4 => string 'ProcessPaymentResponse ProcessPayment(ProcessPayment $parameters)' (length=65)
  5 => string 'ProcessPaymentWithCVNResponse ProcessPaymentWithCVN(ProcessPaymentWithCVN $parameters)' (length=86)
  6 => string 'ProcessPaymentWithBeagleResponse ProcessPaymentWithBeagle(ProcessPaymentWithBeagle $parameters)' (length=95)
  7 => string 'QueryPaymentResponse QueryPayment(QueryPayment $parameters)' (length=59)
  8 => string 'CreateCustomerResponse CreateCustomer(CreateCustomer $parameters)' (length=65)
  9 => string 'UpdateCustomerResponse UpdateCustomer(UpdateCustomer $parameters)' (length=65)
  10 => string 'QueryCustomerResponse QueryCustomer(QueryCustomer $parameters)' (length=62)
  11 => string 'QueryCustomerByReferenceResponse QueryCustomerByReference(QueryCustomerByReference $parameters)' (length=95)
  12 => string 'ProcessPaymentResponse ProcessPayment(ProcessPayment $parameters)' (length=65)
  13 => string 'ProcessPaymentWithCVNResponse ProcessPaymentWithCVN(ProcessPaymentWithCVN $parameters)' (length=86)
  14 => string 'ProcessPaymentWithBeagleResponse ProcessPaymentWithBeagle(ProcessPaymentWithBeagle $parameters)' (length=95)
  15 => string 'QueryPaymentResponse QueryPayment(QueryPayment $parameters)' (length=59)

当我像这样调用函数时

$client->CreateCustomer($customerinfo);

然后它给我错误 SoapFault 异常:[HTTP] Bad Request。

$customerinfo 是所有数据的数组。

【问题讨论】:

  • SoapFault 类公开了几个未记录的属性,您可以发布它们的值吗? $error->faultcode, $error->faultmessage, $error->detail 对于初学者。
  • 'faultstring' => string 'Bad Request' (length=11) 'faultcode' => string 'HTTP' (length=4) 'xdebug_message' => string SoapFault: Bad Request in D: \wamp\www\eway\newfile.php 上线 194
  • 嗯,这些消息的信息量比我希望的要少 :) 您能否在异常后发布 $client->__getLastResponse() 返回的任何内容?
  • $client->__getLastResponse() 为空
  • @Jakub 这是详细问题stackoverflow.com/questions/11394612/…

标签: php soap


【解决方案1】:

这可能与您在$parameters 数组中传递的数据有关。确保您的数据符合SOAP,并且您的请求也遵循相同的要求。 HTTP 400 发生在 SOAP 处理器无法理解请求时。

编码在数据发送和接收中起着重要作用。如果有效负载具有非 SOAP 编码部分,则可能会导致这种情况。如果您可以在CreateCustomer() 中记录请求,您可以验证请求。

根据上面所说的进行故障排除,希望您能解决问题。如果您可以更清晰详细地发布您的问题,这也会很有帮助

【讨论】:

猜你喜欢
  • 2012-02-18
  • 2015-07-08
  • 2011-06-17
  • 1970-01-01
  • 2018-07-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-05
相关资源
最近更新 更多