ошибка при передаче нулевой / пустой строки в тип данных GUID из мыльного клиента php - PullRequest
2 голосов
/ 23 ноября 2010

Я использую PHP для использования веб-службы ASP.NET.Этот конкретный метод требует переменную GUID в качестве параметра.Это определяется как Nullable.Я пытаюсь отправить пустую или пустую строку "" в качестве параметра.После чего я получаю исключение SoapFault: ошибка [a: DeserializationFailed].Говорит, что значение '' не может быть проанализировано как тип 'Guid'. '

Любая идея о том, как передать здесь пустую или пустую строку в качестве параметра.

Заранее спасибо

Аман

Ответы [ 3 ]

2 голосов
/ 22 июня 2011

Попробуйте значение .NET Guid.Empty "{00000000-0000-0000-0000-000000000000}". Это может или не может работать в зависимости от реализации фильтрации / поиска веб-службы и т. Д.

1 голос
/ 23 ноября 2010

.NET не делает NULL. Скорее всего, вы нашли кого-то, кто написал веб-сервис .net и не проверил ошибок, чтобы обнаружить данные с других языков / систем, чем другие приложения .net. Эти проблемы очень трудно решить. Но вы можете попробовать обмануть службу. Попробуйте отправить другие отрицательные данные. Ложь, 0, и, возможно, как бы странно это не звучало, "". (Я знаю, но это работало для меня в прошлом, иди фиг)

0 голосов
/ 13 сентября 2012

В терминах c # вам может потребоваться проверка в php, если у вас есть null, string.empty или guid.empty.

Я использую следующий код для проверки guid.empty в php

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;
}

Я знаю, что есть более эффективные способы использования регулярных выражений, но это обычно помогает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...