HTTPСоединение - как получить код ответа 404? Выпадает исключение #740400


#0 by romix
Для несуществующих ссылок всегда возвращает исключение. Похожая тема: Там советуют использовать WinHttpRequest. Но может быть HTTPСоединение как-то можно заставить возвращать код 404?
#1 by Поpyчик-4
#2 by romix
Этот код не работает: ответ.КодСостояния    {}: Значение не является значением объектного типа (КодСостояния)
#3 by oleg_km
Зачем заставлять возвращать код, если для этого разработчики решили использовать исключение? Используй исключение, у мелкомягких в .NET тоже вроде выскакивает исключение, если 400 или 500, и на Java вроде тоже. Так что 1С в майнстриме.
#4 by romix
Я получаю статус документа, переданного в базу бухгалтерии (проведен, не проведен). Если документ еще не передан (его нет в бух. базе), то 1С бухгалтерии возвращает 404. Это штатный механизм OData от 1С. Хочется различать ситуации, когда документа нет (штатные) и разные внештатные ситуации, на которые надо выдавать ужасное красное исключение.
#5 by ДенисЧ
в описании ошибки что указано?
#6 by oleg_km
Ну да, анализируй информацию из исключения
#7 by Serginio1
Да в исключении ловят webResponse.StatusCode for (int i=1; i < 1000; i++)         }         else         }     } }
#8 by Serginio1
#9 by oleg_km
О, а надо в нашу обертку как-нибудь впихнуть, чтобы можно было получить объект Exception, через утиную типизацию приводить его к нужному типу, к WebException в данном случае
#10 by Serginio1
Можно сделать обертку для выполнения (HttpWebResponse)request.GetResponse; Но надо посмотреть как вообще исключения прикрутить
#11 by Serginio1
Можно сохранять в статической переменной исключение
#12 by oleg_km
Ну да. Я так и хотел
#13 by Serginio1
Но лучше сделать класс обертку внутри которого выполнять метод, где одним полем будет как раз поле ошибки.
#14 by romix
Так или иначе, а код ошибки то не получить никак - 1С прыгает в исключение, где поле с кодом уже недоступно. Что-то содержащее 404 можно прочитать в тексте описания ошибки. Но это же придется пользователю вываливать, или текст парсить. Жалобу что ли им в поддержку напейсать...
#15 by Serginio1
Сделал. Можно использоваь так. Чуть позже выложу        url=";;
#16 by Dunemaster
Ужас какой. Достаточно использовать HTTPСоединение и в качестве аргумента методу Получить передать HTTPЗапрос (
#17 by oleg_km
Там основная проблема когда сбрасывать свойство ПоследняяОшибка, потому что может быть уже непонятно к какому вызову оно относилось. И я это хотел вообще положить в AutoWrap, Invoke там же выполняется. Мальчик, проходи мимо. (шутка)
#18 by Serginio1
Ну в попытке ты получишь только последнюю ошибку. Посмотри
#19 by Serginio1
Там такая реализация public class AutoWrap : IReflect     {         public static bool ЭтоСемерка = false;         public static bool ВыводитьСообщениеОбОшибке = true;         public static Exception ПоследняяОшибка = null; при исключении вызова метода
#20 by Serginio1
Ну и соответственно во врайпере   public object ПоследняяОшибка         {             get{return new AutoWrap(AutoWrap.ПоследняяОшибка);}         }
#21 by Serginio1
Да при исключении выбрасывается комовское исключение    catch (Exception e)             {                 string Ошибка = "Ошибка в методе " + name + " " + e.Message + " " + e.Source;                    throw new COMException(Ошибка);             }
#22 by Serginio1
Я Ужаса никакого не вижу вот код WebRequest=врап.ПолучитьТип("System.Net.WebRequest");
#23 by oleg_km
Для меня главное, что у NET - миллионы вопящих, топающих ногами и требующих немедленно исправить выявленные баги тестеров, а не то они уйдут на Java и пр. А у 1С горстка заложников системы разработки, которых вполуха слушают, а вообще пусть хавают что дают. Старший сам знает, что им надо.
#24 by Serginio1
Если честно, то я удивляюсь тому, что через нетовские классы можно решить кучу задач, но народ будет делать все через задницу, чем применят эту обертку. Я сам довольно часто ей пользуюсь, в том числе и на семерке. При этом я не могу понять, сейчас C# вообще что ли не изучают? Народ сразу на 1С начинает программировать?
#25 by oleg_km
А очень мало на мой взгляд на 1С программистов. У нас сейчас работает молодой специалист, он имеет представление о программировании. До этого один бы радиоинженер, подключал интернет, понял что на 1С можно больше зарабатывать. Другой бросил институт и все эти абстракции и тоже кинулся денег зарабатывать. Они даже не заморачивались с повторным использованием кода, просто копипастили. Ну и откуда у них знание и желание изучать C#? Проще найти работу, где ничего этого не надо будет.
#26 by Serginio1
Да уж
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С