|   |   | 
| 
 | 1С и POST запрос - (символ точки в начале пакета) | ☑ | ||
|---|---|---|---|---|
| 0
    
        Olelykoye 29.10.14✎ 10:00 | 
        Добрый день. Есть запрос на простую страницу php. 
 Соединение = Новый HTTPСоединение("192.168.11.185","80"); Заголовки = Новый Соответствие; СтрокаОтправки = "AAAAA=BBBBB"+Символы.ПС; Заголовки.Вставить("Content-Length",СтрДлина(СтрокаОтправки)); Заголовки.Вставить("Content-Type", "application/x-www-form-urlencoded"); Запрос = Новый HTTPЗапрос("/script/test.php",Заголовки); Запрос.УстановитьТелоИзСтроки(СтрокаОтправки); Ответ = Соединение.ОтправитьДляОбработки(Запрос); Возникает ошибка : {Форма.Форма1.Форма(15)}: Ошибка при вызове метода контекста (ОтправитьДляОбработки) Ответ = Соединение.ОтправитьДляОбработки(Запрос); по причине: Ошибка работы с Интернет: Server returned nothing (no headers, no data) Если изменить строку Заголовки.Вставить("Content-Length",СтрДлина(СтрокаОтправки)+2); Пакет уходит, но страница сообщает что пришли данные: ".AAAAA=BBBBB" хотя точки нет в коде. WireShark - следующий пакет POST /script/test.php HTTP/1.1 User-Agent: 1C+Enterprise/8.2 Host: 192.168.11.185 Accept: */* Content-Length: 14 Content-Type: application/x-www-form-urlencoded ...AAAAA=BBBBB HTTP/1.1 200 OK Date: Wed, 29 Oct 2014 06:57:00 GMT Server: Apache/2.4.7 (Ubuntu) X-Powered-By: PHP/5.5.9-1ubuntu4.4 Content-Length: 0 Content-Type: text/html; charset=UTF-8 Видно что 1С шлет данные с ... Что не так? Или нельзя отправлять данные таким методом, нужно в любом случае отправлять через файл а файл на сервере получать и разбирать. | |||
| 1
    
        yukon 29.10.14✎ 10:41 | 
        (0) Все штатно: если кодировка UTF-8, то в начале контента *принудительно* записывается BOM     | |||
| 2
    
        oleg_km 29.10.14✎ 10:53 | 
        (1) Странно, он тело вроде записывает из строки. Это при записи в файл записывается BOM. Какое шестнадцатеричное представление этой точки?     | |||
| 3
    
        Olelykoye 29.10.14✎ 10:56 | 
        Действительно, указав кодировку к примеру "windows-1251", скрипт принял без проблем запрос. Спасибо.     | |||
| 4
    
        Olelykoye 29.10.14✎ 11:03 | 
        И еще, может кому то понадобится - получить ответ от скрипта, достаточно прописать в скрипте обычное "echo 'Текст'", а на стороне 1С  - что бы получить строчку - следующее
 ..Ответ = Соединение.ОтправитьДляОбработки(Запрос); Сообщить(Ответ.КодСостояния); Сообщить(Ответ.ПолучитьТелоКакСтроку()); второй строчкой и будет ответ от скрипта. Еще раз спасибо. | |||
| 5
    
        yukon 29.10.14✎ 11:07 | 
        (2) Это известная проблема, как минимум, с июня прошлого года. В ближайших релизах 8.3 обещались исправить.     | |||
| 6
    
        yukon 29.10.14✎ 11:13 | 
        Нашел: http://v8.1c.ru/o7/201410json/index.htm
 HTTPЗапрос.УстановитьТелоИзСтроки(Строка, "UTF-8", ИспользованиеByteOrderMark.НеИспользовать); | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |