从soap调用函数获取数据是差异语言

时间:2015-11-25 08:58:06

标签: soap vb6 wsdl

我有关于肥皂的项目。 我可以成功调用wsdl函数,但字符串返回是“????”哪一个 ”???”是泰语。

server.php

<?php
require_once("lib/nusoap.php");
$server = new soap_server();
//$server->soap_defencoding = 'utf-8';
$server->decode_utf8 = false;
//$server->configureWSDL("Testing WSDL ","urn:Testing WSDL ");
$server->configureWSDL("GetInformation","urn:GetInformation");
//Create a complex type

//----------------------------------
//Add ComplexType with Array
$server->wsdl->addComplexType("ArrayOfString", 
                 "complexType", 
                 "array", 
                 "", 
                 "SOAP-ENC:Array", 
                 array(), 
                 array(array("ref"=>"SOAP-  ENC:arrayType","wsdl:arrayType"=>"xsd:string[]")), 
                 "xsd:string");  
//----------------------------------

$server->register('getInfo',array('CASE_ID' =>    'xsd:string'),array('return' => 'tns:ArrayOfString'),'urn:Info','urn:Info#getInfo');

function getInfo($case_id) {

include("ConnectSQL.php");

$dbhandle = mssql_connect($myServer, $myUser, $myPass)
or die("Couldn't connect to SQL Server on $myServer"); 

//select a database to work with
$selected = mssql_select_db($myDB, $dbhandle)
or die("Couldn't open database $myDB"); 

$strCase_ID = $case_id;
// Query
$qry = "SELECT * ";
$qry .= "FROM tbCustomer WHERE CASE_ID = '$strCase_ID' ";
//$arr[0]= $qry;
//execute the SQL query and return records
$result = mssql_query($qry);
//$arr[0] = $strCase_ID;
$i = 0;
$recordcount = mssql_num_rows($result);
if ($recordcount != 0)
{

    //display the results 
    while($row = mssql_fetch_array($result))
    {

        $myname = $row["PREFIX"] ." ". $row["NAME"] ." ".  $row["MIDDLE"]." " ;

        $arr[$i] =  $myname;


        $i = $i+1;

    }
    //close the connection
    mssql_close($dbhandle);
    //return $myname; //iconv("ISO-8859-1", "UTF-8", $myname );
    return $arr;
}
else
{
    return $arr;
    //echo "<font color=red>**</font> Username & Password is wrong";
}


}

$HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA) ? $HTTP_RAW_POST_DATA  : '';
$server->service($HTTP_RAW_POST_DATA);
exit(); 
?>

客户方:

Dim clnt As New SoapClient30
Dim strText
Dim strID As String

clnt.MSSoapInit "http://localhost/MyProject4/server.php?wsdl"

strID = "001"
strText = clnt.getInfo(strID) 
MsgBox strText(0)

我不知道从vb6客户端编码的方法。

谢谢

0 个答案:

没有答案