Вход | Регистрация



vbscript

vbscript
Я
   onetone
 
05.02.18 - 17:03
Всем привет, помогите разобраться с бЯдой.

Имеем такой кусок кода

ИмяФайла = ПолучитьИмяВременногоФайла("xml");
    Скрипт =Новый COMОбъект("MSScriptControl.ScriptControl");
    Скрипт.Language="vbscript";                
    
    x = Новый COMОбъект("Microsoft.XMLHTTP");  
    x.Open("POST", сокрЛП(Константы.АдресСервераСМС.Получить())+"/smw/aisms?action=post_sms&user=" + СокрЛП(Константы.ЛогинСМС.Получить()) + "&pass=" + СокрЛП(Константы.ПарольСМС.Получить()) + "&sender=" + сокрЛП(Константы.ОтправительСМС.Получить()) + "&target=%2B" + Телефон + "&message=" + СокрЛП(ТекстСМС), 0, СокрЛП(Константы.ЛогинСМС.Получить()),СокрЛП(Константы.ПарольСМС.Получить()));
    x.Send();    
    
    s = Новый COMОбъект("ADODB.Stream");  
    s.Mode = 3;  
    s.Type = 1;  
    s.Open();    
    
    Скрипт.AddObject("s",s);  
    Скрипт.AddObject("x",x);  
    Скрипт.Eval("s.Write(x.responseBody)");    
    s.SaveToFile(ИмяФайла, 2);

на одном из компьютеров, вываливается с ошибкой
Скрипт.Eval("s.Write(x.responseBody)");     
Аргументы имеют неверный тип, выходят за пределы допустимого диапазона или вступают в конфликт друг с другом.

Как и в аналогичной теме Опять  вопрос  про  WinHttp.dll но решения там не выложили. Помогите, куда копать?
 
 
   mehfk
 
1 - 05.02.18 - 17:06
А зачем вообще этот гемор с com-объектами, когда 1С 8 сама прекрасно работает с http?
   vde69
 
2 - 05.02.18 - 17:07
проверь собраную строку на предмет недопустимых символов типа кавычек и т.д.
   drcrasher
 
3 - 05.02.18 - 17:07
(1) восьмёрка сырая™
   onetone
 
4 - 05.02.18 - 17:08
(1) досталось по наследству, переписывать за бесплатно не хочется, а клиент платить не хочет.
   mehfk
 
5 - 05.02.18 - 17:08
(3) Варить пробовал?
   mehfk
 
6 - 05.02.18 - 17:09
(4) Ну на нет и суда нет. Так и скажи - не работает, потому что ты не хочешь платить.
   onetone
 
7 - 05.02.18 - 17:13
(2) проверял, если вставить собранную строку в браузер, отрабатывает как надо
   vde69
 
8 - 05.02.18 - 17:20
(7) уверяю дело именно в ней...

или давай сюда полученную строку или думай сам
   DexterMorgan
 
9 - 05.02.18 - 17:22
(4) че там переписывать то, дольше ковыряться будешь
   onetone
 
10 - 05.02.18 - 17:22
(8) http://92.50.156.138:26676/smw/aisms?action=post_sms&user=1&pass=1&sender=M2M&target=%2B79994450987&message=Здравствуйте, Шуппе К.А. Ваши карты на складе
 
 Рекламное место пустует
   vde69
 
11 - 05.02.18 - 17:22
ну и еще, если мне склероз не изменяет, параметр 0 - авто определение прокси из регистра... возможно дело в настройках прокси...
   onetone
 
12 - 05.02.18 - 17:23
(9) Возможно, если никто дельным советом не поможет, перепишу.
   onetone
 
13 - 05.02.18 - 17:24
(11) Прокси нет
   vde69
 
14 - 05.02.18 - 17:24
1. пробел после post 
2. кракозябры
   onetone
 
15 - 05.02.18 - 17:27
(14) 1 не пробел, а нижнее подчёркивание.
2. Тело смс идет в кодировке.
   vde69
 
17 - 05.02.18 - 17:35
добавь кавычки в начало и в конец, у тебя пробелы есть 

"http://92.50.156.138:26676/smw/aisms?action=post_sms&user=1&pass=1&sender=M2M&target=%2B79994450987&message=Здравствуйте, Шуппе К.А. Ваши карты на складе"
   drcrasher
 
18 - 05.02.18 - 17:42
(17) тогда не кавычки, а вместо пробелов %20
   onetone
 
19 - 05.02.18 - 18:28
(17) (18) Вас не смущает что проблема только с одним компом, у других все норм?
   onetone
 
20 - 05.02.18 - 21:31
Переписал отправку через http

HTTP = Новый HTTPСоединение(Константы.АдресСервераСМС.Получить(),,Константы.ЛогинСМС.Получить(), Константы.ПарольСМС.Получить());
    Заголовки = Новый Соответствие;
    Заголовки.Вставить("Content-Type", "application/x-www-form-urlencoded");
    Заголовки.Вставить("charset", "UTF-8");

ТелоСкрипта = "smw/aisms?action=post_sms&user=" + 
    Константы.ЛогинСМС.Получить() + 
    "&pass=" + Константы.ПарольСМС.Получить() + 
    "&sender=" + Константы.ОтправительСМС.Получить() + 
    "&target=%2B" + "79252886512" + 
    "&message=" + "проверка";
    
    HTTP.Получить(Новый HTTPЗапрос(ТелоСкрипта, Заголовки), ИмяФайла);

Смски отправляются, но в ответ приходится иероглифы, никак не могу расшифровать:

?       5?K
?  ?B?RZ
j?I(?~???``V3f{?En_?>3??dRo?7g??????s??(!?(?`z $)z?F?J-?#??[??Fyl
   onetone
 
21 - 05.02.18 - 21:31
(20) Читай файл так
Ф = Новый ТекстовыйДокумент;
Ф.Прочитать(ИмяФайла, КодировкаТекста.UTF8);
   onetone
 
22 - 05.02.18 - 21:33
А должно быть, что то типа того:
<output>
<result>

<sms id="8535020" phone="79171234567"/>

<sms id="8535021" phone="79057654321"/>

</result>

<errors>

<error phone="1">Неправильный номер телефона: 1</error>

<error phone="zz">Неправильный номер телефона: zz</error>

</errors>

</output>
   glebgleb
 
23 - 05.02.18 - 21:45
(20) Укажи в заголовках явно, что ты gunzip не умеешь.
И урленкодом логины пароли и прочую хню прикрой.
   glebgleb
 
24 - 05.02.18 - 21:48
И у тебя вообще гет а не пост.
   onetone
 
25 - 05.02.18 - 22:16
(24) так я вроде через гет и обращаюсь? (HTTP.Получить())
   glebgleb
 
26 - 05.02.18 - 22:27
(25) А к чему тогда 6я строчка в листинге (0)?
   onetone
 
27 - 05.02.18 - 22:37
(26) Аа, не это не мое творение. Так было сделано до меня, и все работало.  А теперь по словам клиента, как бы само перестало. Мне было проще переписать.
   glebgleb
 
28 - 05.02.18 - 22:47
(27) То есть, если верить (19), раньше оно не работало только  на одном компьютере, а теперь не работает вообще. При этом переписывать забесплатно не хочется, но три с половиной часа ты на это уже угрохал.

Чудны дела твои, Господи.


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует