SoapFault istisna: [HTTP] Desteklenmeyen Medya Türü PHP, Java web hizmeti erişirken

1 Cevap java

Ben Zend Framework v1.9.0 gelen Zend_Soap_Client kullanarak bir Java web servisine bağlanmak çalışıyorum:

<?php
include( 'Zend/Loader/Autoloader.php');
$autoloader = Zend_Loader_Autoloader::getInstance();
$client = new Zend_Soap_Client('https://webservice.com/webservice-war/webservice?wsdl'
    , array('encoding'=> 'UTF-8'));

try{
	$result = $client->find_customer(array('username' => 'user', 
                         'password' => '123'), array('city' => 'some city'));
} catch(Exception $e){
	echo $e;
}

echo '<pre>' . $client->getLastRequestHeaders() . '</pre>';	
?>

Çıkışlar:

SoapFault exception: [HTTP] Unsupported Media Type in 
/Library/ZendFramework-1.9.0/library/Zend/Soap/Client.php:937 
Stack trace: 
 #0 [internal function]:
SoapClient->__doRequest('_doRequest(Object(Zend_Soap_Client_Common),
    '__doRequest('__soapCall('find_customer', Array, NULL, NULL, Array) 
 #6 [internal function]:  
 Zend_Soap_Client->__call('find_customer', Array) 
 #7 /Users/webservicetest/index.php(8): 
 Zend_Soap_Client->find_customer(Array, Array) 
 #8 {main}

POST /webservice-war/webservice HTTP/1.1
Host: webservice.com
Connection: Keep-Alive
User-Agent: PHP-SOAP/5.2.6
Content-Type: application/soap+xml; charset=utf-8; action=""
Content-Length: 315

Herhangi bir fikir ne yanlış olabilir? Ararken ben availible fonksiyonları olsun beri url, doğru

$client->getFunctions()

1 Cevap

this listing göre, istisna web barındırma hizmeti sunucusu istekleri kodlama ile mutlu olduğunu gösterir:

Indicates that the peer HTTP server does not support the Content-type used to encode the request message. The message exchange is regarded as having completed unsuccessfully.

Yani bekledikleri content-type/encoding ilişkin web servis sağlayıcı ile kontrol etmelisiniz.

Olası bir çözüm SOAP_1_2 belirtti istekleri değiştirecek beri SOAP_1_1 değiştirmek için kullanıyorsanız.