Имя: Пароль:
1C
1С v8
получить данные с сайта по запросу
0 Игорь_МММ
 
20.06.21
11:59
в запросах http знания близки к нулю, но дали задачу, надо как то решать. Прошу помощи

админ сайта дал текст запроса:
<?php

$dealid = 251; //в параметр передать номер (ID) сделки

$appParams = array(
    'id' => $dealid,
);
$url = 'https://..../crm.deal.get.json';
$curl = curl_init();
curl_setopt_array($curl, array(
    CURLOPT_SSL_VERIFYPEER => 0,
    CURLOPT_POST => 1,
    CURLOPT_HEADER => 0,
    CURLOPT_RETURNTRANSFER => 1,
    CURLOPT_URL => $url,
    CURLOPT_POSTFIELDS => http_build_query($appParams),
));
$result = curl_exec($curl);
curl_close($curl);
$result = json_decode($result, 1);
$dealparams = $result['result'];    // все параметры сделки в этом массиве
echo print_r($dealparams, 1);

?>

Понимаю , что решать надо через что-то подобное следующему:

        URL_Сервера = "api.имя_сайта.com";
        НТТР_Connect = Новый HTTPСоединение(URL_Сервера,,,,,,,Ложь);
        Сообщить("Создали соединение с сервером");
        ПараметрыАвторизации = "username=Name&password=xxxxxxxx";

        HTTP_Запрос = Новый HTTPЗапрос("/auth/token");
        HTTP_Запрос.Заголовки.Вставить("Content-type", "application/x-www-form-urlencoded");
        HTTP_Запрос.УстановитьТелоИзСтроки(ПараметрыАвторизации, КодировкаТекста.UTF8);      
        HTTP_Ответ = НТТР_Connect.ОтправитьДляОбработки(HTTP_Запрос);

но как "прикрутить" мой текст запроса php ко всему этому делу?
1 Игорь_МММ
 
21.06.21
08:50
up
2 Игорь_МММ
 
25.06.21
12:48
and down..

АдресСервера = ".....ru";
                АдресРесурса = "/...";
                Логин        = СтруктураНастроек.Логин;
                Пароль       = СтруктураНастроек.Пароль;
                
                ПараметрыВАдресе = "id=" + Формат(ДанныеТовар.IDBitrix,"ЧН=0; ЧГ=0");
                
                Соединение = Новый HTTPСоединение    (
                                                        АдресСервера,
                                                        , // Порт по умолчанию
                                                        Логин,
                                                        Пароль,
                                                        , // Прокси не используем (в случае необходимости еще объект ИнтернетПрокси сюда передавать нужно)
                                                        , // Таймаут оставляем по умолчанию
                                                        Новый ЗащищенноеСоединениеOpenSSL()
                                                    );
                Запрос = Новый HTTPЗапрос;
                Запрос.Заголовки.Вставить("Content-type", "application\json");
                Запрос.АдресРесурса = АдресРесурса + "?" + ПараметрыВАдресе;
                Ответ = Соединение.ОтправитьДляОбработки(Запрос);
                РезультатТекстом = Ответ.ПолучитьТелоКакСтроку();    

и всего делов
3 Dark_Warrior
 
25.06.21
15:34
(2) ++
Почти весь скрипт заменяется методами работы с http-сервисами от 1С, все параметры запихнуть в json и отдать методом УстановитьТелоИзСтроки()
4 fisher
 
25.06.21
15:41
(2) Можешь еще результат из json десериализовать средствами 1С и получить сразу родные массивы/структуры. Чтоб руками не парсить.