|
Передача методом POST | ☑ | ||
---|---|---|---|---|
0
tatarinovaola
27.09.13
✎
10:45
|
Добрый день. Вопрос поднимался, наверное, уже, но прочитав форумы не смогла определить ошибку.
Гуру, подскажите что не так? Следующая ошибка на строке ОтправитьДляОбработки. Ошибка работы с Интернет: Couldn't resolve host name Функция ОтправитьАвисиоСМС(НомерТелефона, Текст) Экспорт УспешнаяОтправка = Ложь; НастройкиСервиса = ПолучитьНастройкиСервиса(Перечисления.СМС_Сервисы.АвисиоСМС); Если НастройкиСервиса = Неопределено Тогда ЗаписьЖурналаРегистрации("Отправить Ависио СМС", УровеньЖурналаРегистрации.Ошибка, , , "Ошибка настройки сервера: " + ОписаниеОшибки()); //kaso Возврат УспешнаяОтправка; КонецЕсли; имяФайлаОтправки = ПолучитьимяВременногоФайла("xml"); ОбъектXML = Новый ЗаписьXML; ОбъектXML.ОткрытьФайл(имяФайлаОтправки, "UTF-8"); ОбъектXML.ЗаписатьОбъявлениеXML(); ОбъектXML.ЗаписатьБезОбработки( "<date> | <login" + НастройкиСервиса.Пользователь + "</login> | <password>" + НастройкиСервиса.Пароль + "</password> | <text>" + Текст + "</text> | <to number='" + НомерТелефона + "'></to> |</date>"); ОбъектXML.Закрыть(); имяВыходногоФайла = ПолучитьимяВременногоФайла("xml"); ФайлОтправки = Новый Файл(имяФайлаОтправки); Заголовки = Новый Соответствие(); Заголовки.Вставить("Content-Type", "text/html;charset=utf-8"); АдресСервераОнлайнПроверки = "http://smsservice.itakazan.ru/Service/XMLService.asmx/Send"; Соединение = Новый HTTPСоединение(АдресСервераОнлайнПроверки); Соединение.ОтправитьДляОбработки(имяФайлаОтправки, "Send", имяВыходногоФайла, Заголовки); Попытка УдалитьФайлы(имяФайлаОтправки); Исключение КонецПопытки; ЧтениеXML = Новый ЧтениеXML; ЧтениеXML.ОткрытьФайл(имяВыходногоФайла); Пока ЧтениеXML.Прочитать() Цикл // чтение ответа в виде XML файла //... КонецЦикла; ЧтениеXML.Закрыть(); Попытка УдалитьФайлы(имяВыходногоФайла); Исключение КонецПопытки; |
|||
1
viktor_vv
27.09.13
✎
10:49
|
Несколько странный адрес
""http://smsservice.itakazan.ru/Service/XMLService.asmx/Send"" target="_blank" rel="nofollow" class="extralink">http://smsservice.itakazan.ru/Service/XMLService.asmx/Send";; а если оставить только "http://smsservice.itakazan.ru/Service/XMLService.asmx/Send" |
|||
2
oleg_km
27.09.13
✎
10:54
|
АдресСервера это только вот эта часть: smsservice.itakazan.ru
Должно быть примерно так: АдресСервераОнлайнПроверки = "smsservice.itakazan.ru"; Соединение = Новый HTTPСоединение(АдресСервераОнлайнПроверки); Соединение.ОтправитьДляОбработки(имяФайлаОтправки, "Service/XMLService.asmx/Send", имяВыходногоФайла, Заголовки); |
|||
3
tatarinovaola
27.09.13
✎
10:56
|
Исправила следующее:
АдресСервераОнлайнПроверки = "http://www.smsservice.itakazan.ru"; Соединение = Новый HTTPСоединение(АдресСервераОнлайнПроверки); Соединение.ОтправитьДляОбработки(имяФайлаОтправки, "/Service/XMLService.asmx/Send", имяВыходногоФайла, Заголовки); Ошибки теперь не выдал, но и смс-ка не пришла. |
|||
4
tatarinovaola
27.09.13
✎
10:57
|
Непонятно вставляется адрес((( Сделала, как написа oleg_km
|
|||
5
viktor_vv
27.09.13
✎
11:08
|
Теперь еще бы ответ сервера посмотерть в ВыходномФайле.
|
|||
6
oleg_km
27.09.13
✎
11:17
|
(4) Что именно непонятно? Адрес, это адрес хоста и в вашем случае - это только smsservice.itakazan.ru. Хотите дальше упорствовать - дело ваше
|
|||
7
tatarinovaola
27.09.13
✎
11:34
|
Я не упорствую, я так и сделала, как вы сказали, просто при вставке сюда на форум, строчка так вставляется почему-то
|
|||
8
goleaff2006
27.09.13
✎
11:42
|
без фото не помогут =)
|
|||
9
Asmody
27.09.13
✎
11:45
|
Парсер форума портит ссылки в коде 1С. Это нормально.
|
|||
10
Asmody
27.09.13
✎
11:47
|
(3) http:// в адресе сервера не нужно
|
|||
11
tatarinovaola
27.09.13
✎
11:59
|
http:// убрала, спасибо
|
|||
12
tatarinovaola
27.09.13
✎
12:39
|
Файл отправился, всем спасибо, но возврат - ошибка парсера.
Подскажите, я не правильно структуру передала? Нужно отправить вот в таком формате: <data> <login>LOGIN</login> <password>PASSWORD</password> <action>ACTION</action> <text>TEXT</text> <to number='NUMBER'></to> </data> |
|||
13
viktor_vv
27.09.13
✎
12:46
|
| <login" + НастройкиСервиса.Пользователь + "</login>
Так наверное | <login>" + НастройкиСервиса.Пользователь + "</login> |
|||
14
tatarinovaola
27.09.13
✎
12:59
|
(13) не поняла))
|
|||
15
viktor_vv
27.09.13
✎
13:07
|
(14) Найди одно отличие в нижней строке по сравнению с верхней. Посимвольно слева направо.
|
|||
16
viktor_vv
27.09.13
✎
13:08
|
(15)+ Так можнт понятнее будет
| <login" + НастройкиСервиса.Пользователь + "</login> | <login>" + НастройкиСервиса.Пользователь + "</login> |
|||
17
viktor_vv
27.09.13
✎
13:10
|
И посмотри как у тебя эта строка в (0) написана.
|
|||
18
tatarinovaola
27.09.13
✎
14:27
|
Извините, сразу не увидела разницы. Исправила.
Текст результирующего файла выглядит так: <?xml version="1.0" encoding="UTF-8"?><date> <login>польз</login> <password>пароль</password> <text>Текст</text> <to number='НомерТелефона'></to> </date> |
|||
19
tatarinovaola
27.09.13
✎
14:32
|
<date> не могу перенести в нужное место(
|
|||
20
viktor_vv
27.09.13
✎
15:00
|
(19) А теперь определись тебе надо datE или DatA.
В примере (12) у тебя datA. |
|||
21
viktor_vv
27.09.13
✎
15:03
|
(19) Переносить не надо, можешь хоть в одной строке все писать, главное правильно.
Если сильно хочется, то так "|<date> | <login" + НастройкиСервиса.Пользователь + "</login> |
|||
22
tatarinovaola
27.09.13
✎
15:07
|
Спасибо вам огромное!!!! Это все моя невниматеьность! Спасибо!
|
|||
23
tatarinovaola
27.09.13
✎
15:07
|
Действительно нужно Data
|
|||
24
oleg_km
27.09.13
✎
15:53
|
Тогда и закрывающий тэг должен быть </datA>
|
|||
25
tatarinovaola
27.09.13
✎
16:30
|
Да, конечно
|
|||
26
tatarinovaola
30.09.13
✎
09:31
|
Добрый день. Спасибо всем за помощь, еще вопрос возник: сервер возвращает ошибку - Ошибка парсера XML документа. Можете подсказать, с чем это может быть связао?
|
|||
27
oleg_km
30.09.13
✎
10:10
|
Еще раз сбрось сюда свй xml, только в отладчике скопипасть, что бы было полностью идентично
|
|||
28
oleg_km
30.09.13
✎
10:12
|
ОбъектXML.ОткрытьФайл(имяФайлаОтправки, "UTF-8");
Там наверное опять BOM записывается, а сервер естественно его не воспринимает |
|||
29
tatarinovaola
30.09.13
✎
10:17
|
<?xml version="1.0" encoding="UTF-8"?><data>
<login>польз</login> <password>пароль</password> <text>Текст</text> <to number='НомерТелефона'></to> </data> |
|||
30
tatarinovaola
30.09.13
✎
10:21
|
имяФайлаОтправки = ПолучитьимяВременногоФайла("xml");
ОбъектXML = Новый ЗаписьXML; ОбъектXML.ОткрытьФайл(имяФайлаОтправки, "UTF-8"); ОбъектXML.ЗаписатьОбъявлениеXML(); /// для запроса баланса текст //ОбъектXML.ЗаписатьБезОбработки( //"<data> //| <login>" + НастройкиСервиса.Пользователь + "</login> //| <password>" + НастройкиСервиса.Пароль + "</password> //|</data>"); ///// ОбъектXML.ЗаписатьБезОбработки( "<data> | <login>" + НастройкиСервиса.Пользователь + "</login> | <password>" + НастройкиСервиса.Пароль + "</password> | <text>" + Текст + "</text> | <to number='" + НомерТелефона + "'></to> |</data>"); //// ОбъектXML.Закрыть(); имяВыходногоФайла = ПолучитьимяВременногоФайла("xml"); ФайлОтправки = Новый Файл(имяФайлаОтправки); Заголовки = Новый Соответствие(); Заголовки.Вставить("Content-Type", "text/html;charset=utf-8"); АдресСервераОнлайнПроверки = "http://www.smsservice.itakazan.ru"; Соединение = Новый HTTPСоединение(АдресСервераОнлайнПроверки); // для запроса баланса текст //Соединение.ОтправитьДляОбработки(имяФайлаОтправки, "/Service/XMLService.asmx/Balance", имяВыходногоФайла, Заголовки); // Соединение.ОтправитьДляОбработки(имяФайлаОтправки, "/Service/XMLService.asmx/Send", имяВыходногоФайла, Заголовки); // Попытка УдалитьФайлы(имяФайлаОтправки); Исключение КонецПопытки; |
|||
31
viktor_vv
30.09.13
✎
10:22
|
(29) Закомментируй это
Попытка УдалитьФайлы(имяФайлаОтправки); Исключение КонецПопытки; и посмотри что у тебя в файле отправки. |
|||
32
oleg_km
30.09.13
✎
10:27
|
(29) Я просто сохранил фрагмент в файл xml, а он мне уже ругается:
Не удается отобразить страницу XML Не удается просмотреть ввод XML с использованием списка стилей XSL. Исправьте ошибку и затем нажмите кнопку "Обновить"или повторите попытку позднее. -------------------------------------------------------------------------------- В текстовом комментарии обнаружен недопустимый знак. Ошибка при обработке ресурса ''file:///C:/Temp/1С/Проги/test.xml''. С... <login> Короче, сделай как написали в (31) и попробуй открыть xml файл в експлорере. |
|||
33
tatarinovaola
30.09.13
✎
10:33
|
<?xml version="1.0" encoding="UTF-8" ?>
- <data> <login>польз</login> <password>пароль</password> <text>Текст</text> <to number="НомерТелефона" /> </data> В експлорере выглядит так |
|||
34
tatarinovaola
30.09.13
✎
10:35
|
Причем сначала ругался на логин/пароль. Нашли ошибку в пароле и начал выдавать вот эту ошибку парсера. Значит xml читается.
|
|||
35
viktor_vv
30.09.13
✎
10:39
|
- <data>
а че это за фигня перед <data> ? |
|||
36
viktor_vv
30.09.13
✎
10:42
|
(33) Открой блокнотом как обычный текст.
|
|||
37
tatarinovaola
30.09.13
✎
10:44
|
вот так выглядит строчка с data в блокноте:
<?xml version="1.0" encoding="UTF-8"?><data> откуда - ? |
|||
38
viktor_vv
30.09.13
✎
10:46
|
(33) Это он у тебя русские буквы не понимает. Если в (33) заменить кирилицу на англ, то не ругается при открытии
<?xml version="1.0" encoding="UTF-8" ?> <data> <login>abcd</login> <password>abcd</password> <text>abcd</text> <to number="1234" /> </data> |
|||
39
oleg_km
30.09.13
✎
10:46
|
(35) Ну это значит, что експлорер нормально парсит, нужно посмотреть в шестнадцатеричном виде
|
|||
40
tatarinovaola
30.09.13
✎
10:49
|
(38) Логи и пароль на английском, а вот текст тоже не может быть разве на кириллице.
|
|||
41
viktor_vv
30.09.13
✎
10:50
|
(40) (38) Это не читать. Это я не в utf сохранил файл. Если в utf, то нормально открывается.
|
|||
42
viktor_vv
30.09.13
✎
10:51
|
(41)+ с кирилицей.
|
|||
43
oleg_km
30.09.13
✎
10:52
|
(40) можно, я просто сохранил файл без первой строчки, а там кодировка указана. Попробуй выложить шестнадцатеричное представление файла, хотя бы первые 16 байт
|
|||
44
viktor_vv
30.09.13
✎
10:53
|
(33) Тьфу ты. Сравни (12) и свою строку
<to number='NUMBER'></to> <to number="НомерТелефона" /> |
|||
45
viktor_vv
30.09.13
✎
10:54
|
(44)+ Окончание строки.
|
|||
46
oleg_km
30.09.13
✎
10:58
|
(45) Эксплорер же в (33) парсит
|
|||
47
viktor_vv
30.09.13
✎
11:01
|
(46) Это не факт xml-парсер это разберет. ИМХО.
Лучше таки исправить дабы исключить из возможной причины ошибки. |
|||
48
tatarinovaola
30.09.13
✎
11:01
|
ОбъектXML.ЗаписатьБезОбработки(
"<data> | <login>" + НастройкиСервиса.Пользователь + "</login> | <password>" + НастройкиСервиса.Пароль + "</password> | <text>" + Текст + "</text> | <to number='" + НомерТелефона + "'></to> |</data>"); Изначально я так и пишу. В блокноте строчка выглядит так: <to number='1'></to> |
|||
49
viktor_vv
30.09.13
✎
11:05
|
(48) Да. Так и есть. Сорри. Тогда не знаю.
|
|||
50
oleg_km
30.09.13
✎
11:06
|
(48) Блокнот не при чем. Нужно открыть файл xml шестнадцатеричным просмотрщиком и выложить первые 16 байт файла.
|
|||
51
tatarinovaola
30.09.13
✎
11:25
|
(50) можете ссылку на скачку дать на просмотрщика?
|
|||
52
oleg_km
30.09.13
✎
11:28
|
(51) Я пользуюсь встроенным в Тотал Коммандер. Проще тебе прислать мне файл, хотя на будущее, если занимаешься электронным обменом, лучше подобрать себе просмотрщик. [email protected]
|
|||
53
Зойч
30.09.13
✎
11:29
|
(51) с бом'ом уже разобралась?
|
|||
54
oleg_km
30.09.13
✎
11:45
|
(53) Да вот пытаемся.
(51) А сервер примет xml в другой кодировке, допустим win-1251? Тогда просто нужно поменять: ОбъектXML.ОткрытьФайл(имяФайлаОтправки, "win-1251"); И все должно заработать |
|||
55
oleg_km
30.09.13
✎
11:46
|
(53) Кстати, а как ты BOM выкидываешь? Я пользуюсь ADOStream, несколько громоздко получается
|
|||
56
tatarinovaola
30.09.13
✎
11:48
|
(52) отправила вам файл
|
|||
57
tatarinovaola
30.09.13
✎
11:49
|
в тех поддержке сказали добавить параметр send, я добавила
|
|||
58
oleg_km
30.09.13
✎
11:59
|
(56) Да получил, попробую объяснить:
1) Вы формируете xml в кодировке utf-8 2) Для файлов с такой кодировкой предусмотрено добавление в начало файл специальной сигнатуры EF BB BF: п»ї<?xml version. Для всех программ, работающих с utf наличие этой сигнатуры подсказывает, что файл utf, и дальше программа отбрасывает эти символы, поэтому ты их не видишь в блокноте, но они видны в просмотрщике. 3) 1С функция ОтправитьДляОбработки не знает, что тебе нужно отправить utf данные, для нее файл: это просто набор байтов, позтому она шлет все подряд, включая и ненужную серверу сигнатуру. 4) А сервер вообще просто принимает строку, он не предполагает, что ты будешь посылать ему файл Что делать? Либо отослать xml в другой кодировке, которая не добавляет в файлы никаких сигнатур, например win-1251, если сервер может принять данные в такой кодировке Либо отрезать из полученного файла сигнатуру перед отправкой У меня есть такая процедура, но она очень громоздкая, может кто предложит что попроще. Создай новый топик с вопросом: Как удалить BOM из файла? |
|||
59
oleg_km
30.09.13
✎
12:00
|
Попробуй просто пока поменять кодировку, может прокатит.
|
|||
60
tatarinovaola
30.09.13
✎
12:50
|
Посоветовали соединение сделать защищенным.
Соединение = Новый HTTPСоединение(АдресСервераОнлайнПроверки,,,,Истина); Так правильно? Смена кодировки не помогла(( |
|||
61
tatarinovaola
30.09.13
✎
12:52
|
(58) Спасибо вам большое за такое понятное объяснение.
|
|||
62
tatarinovaola
30.09.13
✎
13:06
|
Еще раз всех благодарю за помощь. Ошибка на самом деле была очень глупая, дело не в кодировке. В нашем пароле содержалась решетка, сменили пароль и все заработало!!!! Спасибо!
|
|||
63
oleg_km
30.09.13
✎
14:03
|
Т.е. даже BOM съел? Понятно.
|
|||
64
tatarinovaola
30.09.13
✎
14:06
|
(63) да
|
|||
65
viktor_vv
30.09.13
✎
14:18
|
(62) :). У вас наверное параноики пароли придумывают :)).
|
|||
66
tatarinovaola
30.09.13
✎
14:20
|
Люди, борющиеся за сложные пароли:) (65)
|
|||
67
oleg_km
30.09.13
✎
14:28
|
Ну у систем, доступных в Интернет по определению должны быть сложные пароли. Ведь в руках злоумышленника практически неограниченная сеть ботов, могущих перебирать пароли круглые сутки
|
|||
68
viktor_vv
30.09.13
✎
14:40
|
(67) Да я не спорю, но решетку в пароль, имхо, перебор.
|
|||
69
Зойч
30.09.13
✎
14:43
|
КАК удалить бом из файла:
Создать пустой файл 1251. Записывать в утф в файл с ключем добавлять |
|||
70
oleg_km
30.09.13
✎
14:48
|
(69) оригинально
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |