[SOAP] Client Java se connecte à un serveur PHP
Bonjour à tous :)
je vous explique mon problème. J'ai un serveur SOAP en PHP (avec une simple fonction Add) qui fonctionne très bien avec un client PHP.
Maintenant, je veux créer un client Java avec ksoap2 pour une application android qui se connecte à ce même serveur.
Problème, j'ai une erreur...
Voici le code de mon serveur php:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
|
class MyServer {
function Add($x,$y) {
return $x+$y;
}
}
try {
$server = new SoapServer('monFormat.wsdl', array('trace' => 1,'encoding' => 'ISO-8859-1'));
$server->setclass('MyServer');
$server->setPersistence(SOAP_PERSISTENCE_REQUEST);
} catch (Exception $e) {
echo 'erreur'.$e;
}
// Si l'appel provient d'un Web-Service
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
try {
$server -> handle();
}catch (Exception $e){
echo 'erreur'.$e;
}
} |
Pour info, mon client PHP:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
// Nouveau Client SOAP
try {
$client = new SoapClient('monFormat.wsdl', array('trace' => 1));
$x = "2";
$y = "3";
try{
$oReturn = $client -> __soapCall('Add', array('int1' =>$x, 'int2' =>$y));
} catch (SoapFault $fault) {
trigger_error("SOAP Fault: (faultcode: {$fault->faultcode}, faultstring: {$fault->faultstring})", E_USER_ERROR);
}
var_dump($oReturn);
} catch (SoapFault $fault) {
echo 'erreur : '.$fault;
} |
Maintenant mon client Java:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
|
public class MyTest extends Activity {
private static final String SOAP_ACTION = "http://exemple.com/Add";
private static final String OPERATION_NAME = "Add";
private static final String WSDL_TARGET_NAMESPACE = "http://exemple.com/";
private static final String SOAP_ADDRESS = "http://monurl.fr/android/serveur.php";
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
TextView textView = new TextView(this);
setContentView(textView);
SoapObject request = new SoapObject(WSDL_TARGET_NAMESPACE,OPERATION_NAME);
request.addProperty("int1","2");
request.addProperty("int2","3");
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.dotNet = true;
envelope.setOutputSoapObject(request);
HttpTransportSE httpTransport = new HttpTransportSE(SOAP_ADDRESS);
try{
httpTransport.call(SOAP_ACTION, envelope);
SoapPrimitive response = (SoapPrimitive) envelope.getResponse();
textView.setText(response.toString());
}catch (Exception exception){
textView.setText(exception.toString());
}
}
} |
Et enfin voici le code d'erreur...
http://i72.servimg.com/u/f72/11/52/05/72/error10.png
Si vous avez des suggestions, merci d'avance ^^