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

1С:Предприятие ::

Метки: 

Переписать с php на 1с

Я
   BuHu
 
07.02.18 - 16:24
Добрый день.
Есть несколько строчек на php , которые осуществляют отправку post запроса. пытаюсь оправить такой же post запрос из 1с с помощью HTTPСоединение , но никак не выходит. Может кто подскажет как должен выглядеть этот код в 1с

<?
$xml = file_get_contents('template_export_xml.xml');

$request = '';
$request .= "<?xml version='1.0' encoding='utf-8'?>";
$request .= $xml;

$curl_options = array (
    CURLOPT_URL => 'https://Адрес сайта/wsdl/post.php',
    CURLOPT_POST => TRUE,
    CURLOPT_RETURNTRANSFER => TRUE,
    CURLOPT_VERBOSE => TRUE,
    CURLOPT_HEADER => array(
        'POST /wsdl/post.php HTTP/1.1',
        'User-Agent: BITRIX SOAP Client' ,
        'Host: hpromise.hyundai.ru',
        'Content-Type: text/xml; charset=utf-8',
        'Content-Length: '.strlen($request).'',
    ),
    CURLOPT_POSTFIELDS => $request

);

$curl = curl_init();
curl_setopt_array($curl, $curl_options);

$response = curl_exec($curl);
$info = curl_getinfo($curl);

var_dump($response);
var_dump($info);

curl_close($curl);
 
 
   vde69
 
1 - 07.02.18 - 16:48
ну так показывай как пытаешся
   Fish
 
2 - 07.02.18 - 16:50
(0) Показывай, что наваял.
   BuHu
 
3 - 07.02.18 - 16:52
Заголовки = Новый Соответствие;
 Заголовки.Вставить("Content-Type", "text/xml");
 Заголовки.Вставить("User-Agent", "BITRIX SOAP Clien");
 Заголовки.Вставить("Host", "Адрес сайта");
 Заголовки.Вставить("Content-Length", "request");
 HTTPЗапрос = Новый HTTPЗапрос("parseXML", Заголовки);
 HTTPЗапрос.УстановитьТелоИзСтроки(ЗапросДляОтправки, "UTF-8");
 HTTPСоединение = Новый HTTPСоединение("Адрес сайта/wsdl/post.php"); 
 HTTPОтвет = HTTPСоединение.ОтправитьДляОбработки(HTTPЗапрос);
  
 Возврат HTTPОтвет.ПолучитьТелоКакСтроку();
   Вафель
 
4 - 07.02.18 - 17:00
для соап у 1с нативные методы есть
   BuHu
 
5 - 07.02.18 - 17:09
(4) пробовал 

МестоположениеWSDL = "https://Адрес сайта/wsdl/wsdl.php?wsdl";
WSОпределения = Новый WSОпределения(МестоположениеWSDL);

Выдает ошибку :
Extra content at the end of the document
SystemId: https://Адрес сайта/wsdl/wsdl.php?wsdl"

Хотя в браузере открывается , в SoapUI подключается
   BuHu
 
6 - 07.02.18 - 17:11
+(5) к яндексу цепляется без проблем

МестоположениеWSDL = "http://speller.yandex.net/services/spellservice?WSDL";;
    WSОпределения = Новый WSОпределения(МестоположениеWSDL);
   asady
 
7 - 07.02.18 - 17:16
(0) Заголовки.Вставить("Content-Length", "request"); - вот это совсем не 
'Content-Length: '.strlen($request).'',
   BuHu
 
8 - 07.02.18 - 17:17
(7) я не знаю как должно быть, поэтому и попросил помощи
   asady
 
9 - 07.02.18 - 17:32
sxml = Новый ТекстовыйДокумент;
sxml.Прочитать('template_export_xml.xml');

srequest = "<?xml version='1.0' encoding='utf-8'?>";
srequest = srequest + sxml.ПолучитьТекст();

inputfilename= ПолучитьимяВременногоФайла("xml");
ЗаписьТекста = Новый ЗаписьТекста(inputfilename);
ЗаписьТекста.Записать(srequest);
ЗаписьТекста.Закрыть();
inputfile = Новый Файл(inputfilename);
filesize = XMLСтрока(inputfile.Размер());

putputfilename = ПолучитьимяВременногоФайла("xml"); 
Заголовки = Новый Соответствие();
Заголовки.Вставить("Content-Type", "text/html;charset=utf-8");
//тут твои заголовки

Заголовки.Вставить("Content-Lenght", РазмерФайлаОтправки);
 
Соединение = Новый HTTPСоединение("Адрес сайта");
Соединение.ОтправитьДляОбработки(inputfilename, "wsdl/post.php", outputfilename, Заголовки);
 
как-то так попробуй
   asady
 
10 - 07.02.18 - 17:33
outputfilename = ПолучитьимяВременногоФайла("xml"); 
Заголовки = Новый Соответствие();
Заголовки.Вставить("Content-Type", "text/html;charset=utf-8");
//тут твои заголовки


Заголовки.Вставить("Content-Lenght", outputfilename);
 
 Рекламное место пустует
   vde69
 
11 - 07.02.18 - 17:47
установи атрибут "Content-Type" во что ни будь маскирующую под браузер
   vde69
 
12 - 07.02.18 - 17:48
типа


COM.Request.addHeaderAttribute("Content-Type:application/x-www-form-urlencoded");

или погляди чего там идет когда выполняешь в браузере
   asady
 
13 - 07.02.18 - 17:49
(10)
вместо

Заголовки.Вставить("Content-Lenght", outputfilename);
нужно
Заголовки.Вставить("Content-Lenght", filesize);
   Вафель
 
14 - 07.02.18 - 17:57
кинь адрес сайта, мы посмотрим что за всдл там
   Вафель
 
15 - 07.02.18 - 17:58
хотя в (0) уже все есть
   Вафель
 
16 - 07.02.18 - 18:02
https://hpromise.hyundai.ru/wsdl/wsdl.php?wsdl
Отлично импортировалась в 1С
   BuHu
 
17 - 08.02.18 - 06:30
(16) в смысле импортировалась в 1с?
   BuHu
 
18 - 08.02.18 - 06:33
(16) в WS ссылки?


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