webservice返回的是一个包含整数和字符串类型属性的对象数组,当结果是多个返回值的时候使用正常,当无返回值和只有一个返回值的时候提示Notice: Uninitialized string offset: 0 in C:\Apache\htdocs\commentacts.php on line 253
一类的,函数的返回结果就不正常了,webservice是正常的,下附代码function GetReplyList($rid)
{
$aResult = $this->callweb->getreplylist((int)$rid);
foreach ($aResult['GetListResult']['CInfo'] as $key)
{
$o = new CInfo();
$o->ID = (int)$key['ID'];
$o->Content = $key['Content'];
$o->ArticleID = $key['ArticleID'];
$o->UserName = $key['UserName'];
$o->IsDelete = $key['IsDelete'];
$o->ReplyID = $key['ReplyID'];
$Result[$i] = $o;
$i++;
}
return $Result;
}
一类的,函数的返回结果就不正常了,webservice是正常的,下附代码function GetReplyList($rid)
{
$aResult = $this->callweb->getreplylist((int)$rid);
foreach ($aResult['GetListResult']['CInfo'] as $key)
{
$o = new CInfo();
$o->ID = (int)$key['ID'];
$o->Content = $key['Content'];
$o->ArticleID = $key['ArticleID'];
$o->UserName = $key['UserName'];
$o->IsDelete = $key['IsDelete'];
$o->ReplyID = $key['ReplyID'];
$Result[$i] = $o;
$i++;
}
return $Result;
}
只提示一下,供参考
web服务是通过标准xml定义的数据类型按照xml的字串和数值等严格定义,但不同语言,在转化成xml时不同变量可能会出错,打个比方:php的字串输出时,在xml中就不是字串
看看你web服务的数据定义,再看看两头
我不太清楚该怎么形容,当返回的结果是多个的时候,$aResult['GetListResult']['CInfo'] as $key这样取数组没有问题,但是当只有一个结果的时候,这样取数据就是乱的,改成$aResult['GetListResult']来取就正常了,可是我不知道该怎么判断返回的结果的数量。
先判断一下呢
Content-Type: text/xml; charset=utf-8
Content-Length: length<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<GetListResponse xmlns="http://tempuri.org/">
<GetListResult>
<CInfo>
<ID>int</ID>
<Content>string</Content>
<ArticleID>string</ArticleID>
<UserName>string</UserName>
<IsDelete>string</IsDelete>
<ReplyID>int</ReplyID>
</CInfo>
<CInfo>
<ID>int</ID>
<Content>string</Content>
<ArticleID>string</ArticleID>
<UserName>string</UserName>
<IsDelete>string</IsDelete>
<ReplyID>int</ReplyID>
</CInfo>
</GetListResult>
</GetListResponse>
</soap:Body>
</soap:Envelope>