Wednesday, March 25, 2015

Простая схема передачи данных между 1с и битрикс используя post запросы

Используем битрикс как сайт. И для несложных схем обмена использую php скрипты. С Get проблем не было, с Post пришлось поковыряться. Простое решение

Код 1с 8.2

 ИФ = ПолучитьИмяВременногоФайла();
 ЗФ = Новый ЗаписьТекста(ИФ);
 ЗФ.ЗаписатьСтроку("Привет1");
 ЗФ.ЗаписатьСтроку("Привет2");
 ЗФ.ЗаписатьСтроку("Привет3");
 ЗФ.ЗаписатьСтроку("Привет4");
 ЗФ.ЗаписатьСтроку("Привет5");
 ЗФ.ЗаписатьСтроку("Привет6");
 ЗФ.Закрыть();
 //Фл = Новый Файл(ИФ);
 ХТТП = Новый COMОбъект("Microsoft.XMLHTTP");
 adoStream = Новый COMОбъект("ADODB.Stream");
 
 adoStream.Mode = 3;          // read write
 adoStream.Type = 1;          // adTypeBinary
 
 adoStream.Open();
 adoStream.LoadFromFile(ИФ);
 adoStream.Position = 0;
 
 connectstring = Константы.ПорталB2BАдресСайта.Получить()+"/tools/get_users_info.php";
 request = "POST";
 ХТТП.Open(request, connectstring, Ложь);  
 ХТТП.SetRequestHeader("Content-Type", "application/upload");
 //ХТТП.SetRequestHeader("X-File-Name", "input.txt");
 //ХТТП.SetRequestHeader("X-File-Size", Фл.Размер());
 ХТТП.Send(adoStream.Read(adoStream.Size));
 Сообщить(ХТТП.Status);
 Сообщить( ХТТП.ResponseText);


код на сервере php
<?php
$data = file_get_contents('php://input');//ile_get_contents("input.txt"); //read the file
$convert = explode("\n", $data); //create array separate by new line

for ($i=0;$i<count($convert);$i++)  
{
    echo $convert[$i].', '; //write value by index
}
?>

Итого, создаем файл запихиваем в него 6 приветов и отправляем, от сервера получаем ответ.

No comments:

Post a Comment