Показать сообщение отдельно
Старый 25.10.2021, 22:56   #2  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,283 / 3491 (123) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
Добрый день! А пример с POST-запросом не подойдет?
SIIRegisterMessage* - классы, TaxHMRCHelper_UK - класс. В общем - по перекрестным ссылкам по классу RetailCommonWebAPI примеры можно найти
А работает это стандартно, как любой механизм с веб-запросом. Т.е. сначала инициализируется класс RetailWebRequest (в который кладутся данные для запроса), который является обёрткой класса System.Net.HttpWebRequest.
Потом вызывается метод GetResponse последнего класса - который выдаёт класс System.Net.HttpWebResponse, у которого в свою очередь есть обёртка в виде класса RetailWebResponse
Дальше вынимаются данные из класса RetailWebResponse.

Непосредственно процедура передачи управления .NET-классам производится в методе RetailCommonWebAPI.getResponse

Собственно, всё

Пример стандартного метода с GET-запросом (без параметров) из класса EGAISUTMHelper_RU
X++:
public static XML makeGETRequest(URL   _URL)
{
    RetailCommonWebAPI  webApi;
    RetailWebResponse   webResponse;
    XML                 responseXml;

    webApi = RetailCommonWebAPI::construct();
    webResponse = webApi.makeRequest(_URL);

    if (webResponse.parmHttpStatus() == #HttpOK)
    {
        responseXml = webResponse.parmData();
    }
    else
    {
        throw error(webResponse.parmData() ? webResponse.parmData() : strFmt("@SYP4885905", _URL, webResponse.parmHttpStatus()));
    }

    return responseXml;
}
POST-запрос с параметрами (класс EGAISSendOutgoingDocuments_RU)
X++:
protected RetailWebResponse makePostRequest(
    str _requestUrl,
    str _postData,
    str _header = '',
    str _contentType = '')
{
    RetailCommonWebAPI      webApi;
    RetailWebResponse       webResponse;

    webApi      = RetailCommonWebAPI::construct();
    webResponse = webApi.makePostRequest(_requestUrl, _postData, _header, _contentType);

    return webResponse;
}
__________________
Возможно сделать все. Вопрос времени

Последний раз редактировалось sukhanchik; 25.10.2021 в 23:01.