从php soap客户端传递null /空字符串到GUID数据类型时出错

时间:2010-11-23 09:12:09

标签: php soap client

我使用PHP来使用ASP.NET Web服务。此特定方法需要GUID变量作为参数。它被定义为Nullable。 我试图发送一个空或空字符串“”作为参数。接下来,我得到一个SoapFault异常:[a:DeserializationFailed]错误。 说价值''不能被解析为'Guid'类型。'

如何在这里将null或空字符串作为参数传递。

提前致谢。

阿曼

3 个答案:

答案 0 :(得分:2)

尝试.NET的Guid.Empty值“{00000000-0000-0000-0000-000000000000}”。这可能会也可能不会起作用,具体取决于Web服务的过滤/搜索等实现。

答案 1 :(得分:1)

.NET不会执行NULL。您最有可能做的是找到编写.net Web服务的人,并且没有进行任何错误检查来检测来自其他语言/系统的数据,而不是其他.net应用程序。这些问题非常难以解决。但你可以尝试欺骗服务。尝试发送其他负面数据。假,0,可能,听起来很奇怪,“”。 (我知道,但过去它对我有用,去图)

答案 2 :(得分:0)

在c#术语中,如果你有一个null,一个string.empty或一个guid.empty,你可能需要在php中验证。

我使用以下代码检查php中的guid.empty

function isGuidEmpty($my_guid_as_a_string) {
    // Assuming the guid is valid
    $retVal = false;
    $val = $array_sum(explode("-", $my_guid_as_a_string));

    if ($val == 0) {
        // Guid is empty
        $retVal = true;
 }

 return $retVal;
}

我知道使用正则表达式有更好的方法,但这通常可以解决问题。