我使用PHP来使用ASP.NET Web服务。此特定方法需要GUID变量作为参数。它被定义为Nullable。 我试图发送一个空或空字符串“”作为参数。接下来,我得到一个SoapFault异常:[a:DeserializationFailed]错误。 说价值''不能被解析为'Guid'类型。'
如何在这里将null或空字符串作为参数传递。
提前致谢。
阿曼
答案 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;
}
我知道使用正则表达式有更好的方法,但这通常可以解决问题。