-1
次のように
は私のコードは、サービス目標と私のiphoneアプリからの呼び出しではありません。WebサービスはObjective Cの、SOAP要求から呼び出すことはできません
Webサービスがhttp://tuturno.knowit.cl/soap/colas.php上のPHPであり、機能としてあります次の:
function registrocola ($param1){
$obj = json_decode($param1);
$hoy = date("Y-m-d H:i:s");
include_once 'RegistroCola.php';
include_once 'ControlSOAP.php';
$registro = new RegistroCola();
$registro->cliente = $obj->{'cliente'};
$registro->cola = $obj->{'cola'};
$registro->fecha = $hoy;
$registro->iddispositivo = $obj->{'idDispositivo'};
$registro->numero = $obj->{'numero'};
$registro->sucursal = $obj->{'sucursal'};
$out = ControlSOAP::registrar($registro);
return $out;}
次のように私のiPhoneアプリからの呼び出しは次のとおりです。
// Build dictionnary with parameters
NSMutableDictionary *dictionnary = [NSMutableDictionary dictionary];
[dictionnary setObject:[tiket codigoSucursal] forKey:@"sucursal"];
[dictionnary setObject:[tiket cliente] forKey:@"cliente"];
[dictionnary setObject:[tiket letraCola] forKey:@"cola"];
[dictionnary setObject:[tiket nroTicket] forKey:@"numero"];
[dictionnary setObject:[tiket idDispositivo] forKey:@"idDispositivo"];
[dictionnary setObject:@"2014-11-02" forKey:@"fecha"];
NSError *error = nil;
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:dictionnary
options:kNilOptions
error:&error];
NSURL *url = [NSURL URLWithString: URL];
NSString *soapAction=[NSString stringWithFormat:@"%@%@",SOAP_ACTION,METHOD_REGISTER];
NSDictionary *headField=[NSDictionary dictionaryWithObjectsAndKeys:[url host],@"Host",
@"text/xml; charset=utf-8",@"Content-Type",
soapAction,@"SOAPAction",nil];
// Prepare the request
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setAllHTTPHeaderFields:headField];
[request setHTTPMethod:@"POST"];
[request setValue:@"application/json" forHTTPHeaderField:@"Accept"];
[request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
[request setValue:@"json" forHTTPHeaderField:@"Data-Type"];
[request setHTTPBody:jsonData];
NSError *errorReturned = nil;
NSURLResponse *theResponse =[[NSURLResponse alloc]init];
NSData *data = [NSURLConnection sendSynchronousRequest:request
returningResponse:&theResponse
error:&errorReturned];
サービスを呼び出すためには悪いSOAP要求
語ります、これはテストコールのWebサービスであるPHP
$client = new SoapClient(null, array(
'location' => DatosSOAP::$LOCATION."/colas.php",
'uri' => DatosSOAP::$URI,
'trace' => 1));
$hoy = date("Y-m-d H:i:s");
$params = array('cliente'=>'99', 'sucursal'=>'99', 'cola'=>'A', 'iddispositivo'=>'Galaxy', 'numero'=>'33', 'fecha'=>$hoy);
$return = $client->__soapCall("registrocola",array($params));
echo("\nReturning value of __soapCall() call: ".$return);
echo("<br><br><br>\nDumping request headers:\n"
.$client->__getLastRequestHeaders());
echo("\nDumping request:\n".$client->__getLastRequest());
echo("\nDumping response headers:\n"
.$client->__getLastResponseHeaders());
echo("\nDumping response:\n".$client->__getLastResponse());
XMLまたはJSONを返すSOAPサービスですか? Pleseは私の答えを無視します。私はそれを削除します –
JSON –
headFieldを返すWebサービスtext/XMLとして設定していますが、リクエストと応答の両方がJSONです。その部分をチェックしてください –