Имя: Пароль:
 
1C
1С v8
Переписать с php на 1с
0 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);
1 vde69
 
07.02.18
16:48
ну так показывай как пытаешся
2 Fish
 
07.02.18
16:50
(0) Показывай, что наваял.
3 BuHu
 
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с нативные методы есть
5 BuHu
 
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 подключается
6 BuHu
 
07.02.18
17:11
+(5) к яндексу цепляется без проблем
МестоположениеWSDL = "http://speller.yandex.net/services/spellservice?WSDL";;
    WSОпределения = Новый WSОпределения(МестоположениеWSDL);
7 asady
 
07.02.18
17:16
(0) Заголовки.Вставить("Content-Length", "request"); - вот это совсем не
'Content-Length: '.strlen($request).'',
8 BuHu
 
07.02.18
17:17
(7) я не знаю как должно быть, поэтому и попросил помощи
9 asady
 
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, Заголовки);

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

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


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


или погляди чего там идет когда выполняешь в браузере
13 asady
 
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С
17 BuHu
 
08.02.18
06:30
(16) в смысле импортировалась в 1с?
18 BuHu
 
08.02.18
06:33
(16) в WS ссылки?