|
vbscript | ☑ | ||
---|---|---|---|---|
0
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 но решения там не выложили. Помогите, куда копать? |
|||
1
mehfk
05.02.18
✎
17:06
|
А зачем вообще этот гемор с com-объектами, когда 1С 8 сама прекрасно работает с http?
|
|||
2
vde69
05.02.18
✎
17:07
|
проверь собраную строку на предмет недопустимых символов типа кавычек и т.д.
|
|||
3
drcrasher
05.02.18
✎
17:07
|
(1) восьмёрка сырая™
|
|||
4
onetone
05.02.18
✎
17:08
|
(1) досталось по наследству, переписывать за бесплатно не хочется, а клиент платить не хочет.
|
|||
5
mehfk
05.02.18
✎
17:08
|
(3) Варить пробовал?
|
|||
6
mehfk
05.02.18
✎
17:09
|
(4) Ну на нет и суда нет. Так и скажи - не работает, потому что ты не хочешь платить.
|
|||
7
onetone
05.02.18
✎
17:13
|
(2) проверял, если вставить собранную строку в браузер, отрабатывает как надо
|
|||
8
vde69
05.02.18
✎
17:20
|
(7) уверяю дело именно в ней...
или давай сюда полученную строку или думай сам |
|||
9
DexterMorgan
05.02.18
✎
17:22
|
(4) че там переписывать то, дольше ковыряться будешь
|
|||
10
onetone
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=Здравствуйте, Шуппе К.А. Ваши карты на складе
|
|||
11
vde69
05.02.18
✎
17:22
|
ну и еще, если мне склероз не изменяет, параметр 0 - авто определение прокси из регистра... возможно дело в настройках прокси...
|
|||
12
onetone
05.02.18
✎
17:23
|
(9) Возможно, если никто дельным советом не поможет, перепишу.
|
|||
13
onetone
05.02.18
✎
17:24
|
(11) Прокси нет
|
|||
14
vde69
05.02.18
✎
17:24
|
1. пробел после post
2. кракозябры |
|||
15
onetone
05.02.18
✎
17:27
|
(14) 1 не пробел, а нижнее подчёркивание.
2. Тело смс идет в кодировке. |
|||
17
vde69
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=Здравствуйте, Шуппе К.А. Ваши карты на складе" |
|||
18
drcrasher
05.02.18
✎
17:42
|
(17) тогда не кавычки, а вместо пробелов %20
|
|||
19
onetone
05.02.18
✎
18:28
|
(17) (18) Вас не смущает что проблема только с одним компом, у других все норм?
|
|||
20
onetone
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 |
|||
21
onetone
05.02.18
✎
21:31
|
(20) Читай файл так
Ф = Новый ТекстовыйДокумент; Ф.Прочитать(ИмяФайла, КодировкаТекста.UTF8); |
|||
22
onetone
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> |
|||
23
glebgleb
05.02.18
✎
21:45
|
(20) Укажи в заголовках явно, что ты gunzip не умеешь.
И урленкодом логины пароли и прочую хню прикрой. |
|||
24
glebgleb
05.02.18
✎
21:48
|
И у тебя вообще гет а не пост.
|
|||
25
onetone
05.02.18
✎
22:16
|
(24) так я вроде через гет и обращаюсь? (HTTP.Получить())
|
|||
26
glebgleb
05.02.18
✎
22:27
|
(25) А к чему тогда 6я строчка в листинге (0)?
|
|||
27
onetone
05.02.18
✎
22:37
|
(26) Аа, не это не мое творение. Так было сделано до меня, и все работало. А теперь по словам клиента, как бы само перестало. Мне было проще переписать.
|
|||
28
glebgleb
05.02.18
✎
22:47
|
(27) То есть, если верить (19), раньше оно не работало только на одном компьютере, а теперь не работает вообще. При этом переписывать забесплатно не хочется, но три с половиной часа ты на это уже угрохал.
Чудны дела твои, Господи. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |