我正在为我的工作开发API,我们需要做一个Web服务,以后我们会使用它。我按照许多教程来做Web服务,但我仍然无法使其工作。我只需要Web服务可以插入到DB中,但它只返回bool(false)。我正在使用Nusoap lib。
这是我的index.php(服务),我使用XAMPP作为localhost。
<?php
require_once 'C:/xampp/htdocs/s/lib/nusoap.php';
$server = new nusoap_server();
$server->configureWSDL("RecibirDatosXML", "urn:RecibirDatosXMLwsdl");
$server->wsdl->schemaTargetNamespace = "urn:RecibirDatosXMLwsdl";
function RecibirDatos($datos) {
session_start();
$servidor="localhost";
$db="prueba";
$user="root";
$pass="";
$conexion = mysqli_connect($servidor,$user,$pass,$db);
$sql = "INSERT INTO registro (Nombre,Apellido,Email,Usuario,Contraseña) VALUES('Nombasrae, 'Apellido', 'Email', 'Usuario', 'Contraseña')";
mysqli_query($conexion,$sql) or die ("Error"); //I think the error is here
mysqli_close($conexion);
return "Hi $datos "; //If Insert then return it
}
$server->register(
"RecibirDatos",
array('datos' => 'xsd:string'), // Parámetros de entrada
array('return' => 'xsd:string'),
'urn:RecibirDatosXMLwsdl', // Nombre del workspace
'urn:RecibirDatosXMLwsdl#RecibirDatos', // Acción soap
'rpc', // Estilo
'encoded', // Uso
'Manda los datos para ser procesados' // Documentación
);
$HTTP_RAW_POST_DATA = isset($GLOBALS['HTTP_RAW_POST_DATA']) ? $GLOBALS['HTTP_RAW_POST_DATA'] : '';
$server->service($HTTP_RAW_POST_DATA);
?>
这是我使用Web服务的prueba.php ......
<?php
require_once 'C:/xampp/htdocs/s/lib/nusoap.php';
$client = new nusoap_client('http://localhost/s/index.php?wsdl');
$result = $client->call('RecibirDatos',array('datos' => 'Clark'));
if ($client->fault) {
echo 'Error: ';
print_r($result);
} else {
// check result
$err_msg = $client->getError();
if ($err_msg) {
// Print error msg
echo 'Error: '.$err_msg;
} else {
// Print result
echo 'Result: ';
print_r($result);
}
}
?>
Web服务只回答我&#34; bool(false)&#34;,如果我评论数据库代码,它可以运行并返回我&#34;嗨Clark&#34;。我执行SQL时发生错误。
调试Web服务的答案是:
错误:响应不是text / xml类型:text / html;字符集= UTF-8
我认为错误发生在sql中,因为如果我删除&#34;或者死掉&#34;指令 它打印&#34;嗨Clark&#34;,所以我认为,由于一个奇怪的原因,SQL查询不能成功,然后去&#34;或死&#34;并且该服务尝试打印&#34;错误&#34;然后Web服务回答我&#34;错误:响应不是text / xml类型:text / html;字符集= UTF-8&#34;