1
0
mirror of https://github.com/Bayselonarrend/OpenIntegrations.git synced 2025-11-25 22:12:29 +02:00

Main build (Jenkins)

This commit is contained in:
Vitaly the Alpaca (bot)
2025-04-25 21:52:05 +03:00
parent bc60b480ab
commit 58d505c297
35 changed files with 8380 additions and 7496 deletions

View File

@@ -0,0 +1,4 @@
{
"URL": "https://httpbin.org",
"Image": "https://api.athenaeum.digital/test_data/picture.jpg"
}

View File

@@ -0,0 +1,4 @@
{
"URL": "https://httpbin.org",
"Image": "https://api.athenaeum.digital/test_data/picture.jpg"
}

View File

@@ -0,0 +1,3 @@
{
"URL": "https://httpbin.org"
}

View File

@@ -0,0 +1,3 @@
{
"URL": "https://httpbin.org"
}

View File

@@ -0,0 +1,3 @@
{
"URL": "https://httpbin.org"
}

View File

@@ -0,0 +1,4 @@
{
"URL": "https://httpbin.org",
"Image": "https://api.athenaeum.digital/test_data/picture.jpg"
}

View File

@@ -0,0 +1,13 @@
 URL = "https://httpbin.org";
URL = URL + "/post";
Image = "https://api.athenaeum.digital/test_data/picture.jpg"; // URL, Path or Binary Data
Result = OPI_HTTPRequests.NewRequest()
.Initialize(URL)
.StartMultipartBody()
.AddMultipartFormDataFile("file1", "pic.png", Image, "image/png")
.AddMultipartFormDataField("Field1", "Text") // <---
.AddMultipartFormDataField("Field2", "10") // <---
.ProcessRequest("POST")
.ReturnResponseAsJSONObject();

View File

@@ -0,0 +1,13 @@
 URL = "https://httpbin.org";
URL = URL + "/post";
Image = "https://api.athenaeum.digital/test_data/picture.jpg"; // URL, Path or Binary Data
Result = OPI_HTTPRequests.NewRequest()
.Initialize(URL)
.StartMultipartBody()
.AddMultipartFormDataFile("file1", "pic.png", Image, "image/png") // <---
.AddMultipartFormDataField("Field1", "Text")
.AddMultipartFormDataField("Field2", "10")
.ProcessRequest("POST")
.ReturnResponseAsJSONObject();

View File

@@ -0,0 +1,10 @@
 URL = "https://httpbin.org";
URL = URL + "/post";
Data = New Structure("Field1,Field2", "10", "Text");
Result = OPI_HTTPRequests.NewRequest()
.Initialize(URL)
.SetFormBody(Data) // <---
.ProcessRequest("POST")
.ReturnResponseAsJSONObject();

View File

@@ -0,0 +1,15 @@
 URL = "https://httpbin.org";
URL = URL + "/post";
RandomArray = New Array;
RandomArray.Add("A");
RandomArray.Add("B");
RandomArray.Add("C");
Data = New Structure("Field1,Field2,Field3", 10, "Text", RandomArray);
Result = OPI_HTTPRequests.NewRequest()
.Initialize(URL)
.SetJsonBody(Data) // <---
.ProcessRequest("POST")
.ReturnResponseAsJSONObject();

View File

@@ -0,0 +1,12 @@
 URL = "https://httpbin.org";
URL = URL + "/post";
Text = "Hello world!";
Encoding = "Windows-1251";
Result = OPI_HTTPRequests.NewRequest()
.Initialize(URL)
.UseEncoding(Encoding)
.SetStringBody(Text) // <---
.ProcessRequest("POST")
.ReturnResponseAsJSONObject();

View File

@@ -0,0 +1,13 @@
 URL = "https://httpbin.org";
URL = URL + "/post";
Image = "https://api.athenaeum.digital/test_data/picture.jpg"; // URL, Path or Binary Data
Result = OPI_HTTPRequests.NewRequest()
.Initialize(URL)
.StartMultipartBody() // <---
.AddMultipartFormDataFile("file1", "pic.png", Image, "image/png")
.AddMultipartFormDataField("Field1", "Text")
.AddMultipartFormDataField("Field2", "10")
.ProcessRequest("POST")
.ReturnResponseAsJSONObject();

View File

@@ -0,0 +1,4 @@
{
"URL": "https://httpbin.org",
"Картинка": "https://api.athenaeum.digital/test_data/picture.jpg"
}

View File

@@ -0,0 +1,4 @@
{
"URL": "https://httpbin.org",
"Картинка": "https://api.athenaeum.digital/test_data/picture.jpg"
}

View File

@@ -0,0 +1,4 @@
{
"URL": "https://httpbin.org",
"Картинка": "https://api.athenaeum.digital/test_data/picture.jpg"
}

View File

@@ -0,0 +1,3 @@
{
"URL": "https://httpbin.org"
}

View File

@@ -0,0 +1,3 @@
{
"URL": "https://httpbin.org"
}

View File

@@ -0,0 +1,3 @@
{
"URL": "https://httpbin.org"
}

View File

@@ -0,0 +1,13 @@
 URL = "https://httpbin.org";
URL = URL + "/post";
Картинка = "https://api.athenaeum.digital/test_data/picture.jpg"; // URL, Путь или Двоичные данные
Результат = OPI_ЗапросыHTTP.НовыйЗапрос()
.Инициализировать(URL)
.НачатьЗаписьТелаMultipart()
.ДобавитьФайлMultipartFormData("file1", "pic.png", Картинка, "image/png")
.ДобавитьПолеMultipartFormData("Поле1", "Текст") // <---
.ДобавитьПолеMultipartFormData("Поле2", "10") // <---
.ОбработатьЗапрос("POST")
.ВернутьОтветКакJSONКоллекцию();

View File

@@ -0,0 +1,13 @@
 URL = "https://httpbin.org";
URL = URL + "/post";
Картинка = "https://api.athenaeum.digital/test_data/picture.jpg"; // URL, Путь или Двоичные данные
Результат = OPI_ЗапросыHTTP.НовыйЗапрос()
.Инициализировать(URL)
.НачатьЗаписьТелаMultipart()
.ДобавитьФайлMultipartFormData("file1", "pic.png", Картинка, "image/png") // <---
.ДобавитьПолеMultipartFormData("Поле1", "Текст")
.ДобавитьПолеMultipartFormData("Поле2", "10")
.ОбработатьЗапрос("POST")
.ВернутьОтветКакJSONКоллекцию();

View File

@@ -0,0 +1,13 @@
 URL = "https://httpbin.org";
URL = URL + "/post";
Картинка = "https://api.athenaeum.digital/test_data/picture.jpg"; // URL, Путь или Двоичные данные
Результат = OPI_ЗапросыHTTP.НовыйЗапрос()
.Инициализировать(URL)
.НачатьЗаписьТелаMultipart() // <---
.ДобавитьФайлMultipartFormData("file1", "pic.png", Картинка, "image/png")
.ДобавитьПолеMultipartFormData("Поле1", "Текст")
.ДобавитьПолеMultipartFormData("Поле2", "10")
.ОбработатьЗапрос("POST")
.ВернутьОтветКакJSONКоллекцию();

View File

@@ -0,0 +1,10 @@
 URL = "https://httpbin.org";
URL = URL + "/post";
Данные = Новый Структура("Поле1,Поле2", "10", "Текст");
Результат = OPI_ЗапросыHTTP.НовыйЗапрос()
.Инициализировать(URL)
.УстановитьFormТело(Данные) // <---
.ОбработатьЗапрос("POST")
.ВернутьОтветКакJSONКоллекцию();

View File

@@ -0,0 +1,15 @@
 URL = "https://httpbin.org";
URL = URL + "/post";
СлучайныйМассив = Новый Массив;
СлучайныйМассив.Добавить("A");
СлучайныйМассив.Добавить("B");
СлучайныйМассив.Добавить("C");
Данные = Новый Структура("Поле1,Поле2,Поле3", 10, "Текст", СлучайныйМассив);
Результат = OPI_ЗапросыHTTP.НовыйЗапрос()
.Инициализировать(URL)
.УстановитьJsonТело(Данные) // <---
.ОбработатьЗапрос("POST")
.ВернутьОтветКакJSONКоллекцию();

View File

@@ -0,0 +1,12 @@
 URL = "https://httpbin.org";
URL = URL + "/post";
Текст = "Привет мир!";
Кодировка = "Windows-1251";
Результат = OPI_ЗапросыHTTP.НовыйЗапрос()
.Инициализировать(URL)
.ИспользоватьКодировку(Кодировка)
.УстановитьСтроковоеТело(Текст) // <---
.ОбработатьЗапрос("POST")
.ВернутьОтветКакJSONКоллекцию();

File diff suppressed because it is too large Load Diff

View File

@@ -2643,6 +2643,12 @@ Procedure HTTP_BodySet() Export
OPI_TestDataRetrieval.ParameterToCollection("Picture" , TestParameters); OPI_TestDataRetrieval.ParameterToCollection("Picture" , TestParameters);
HTTPClient_SetBinaryBody(TestParameters); HTTPClient_SetBinaryBody(TestParameters);
HTTPClient_SetStringBody(TestParameters);
HTTPClient_SetJsonBody(TestParameters);
HTTPClient_SetFormBody(TestParameters);
HTTPClient_StartMultipartBody(TestParameters);
HTTPClient_AddMultipartFormDataField(TestParameters);
HTTPClient_AddMultipartFormDataFile(TestParameters);
EndProcedure EndProcedure
@@ -21072,7 +21078,11 @@ Procedure HTTPClient_Initialize(FunctionParameters)
Result["origin"] = "***"; Result["origin"] = "***";
Except Except
Message("Cant replace origin"); Message("Cant replace origin");
Message(Result.GetLog(True)); Try
Message(Result.GetLog(True));
Except
Message(ПолучитьСтрокуИзДвоичныхДанных(Result));
EndTry;
EndTry; EndTry;
Try Try
@@ -21130,7 +21140,11 @@ Procedure HTTPClient_SetURL(FunctionParameters)
Result["origin"] = "***"; Result["origin"] = "***";
Except Except
Message("Cant replace origin"); Message("Cant replace origin");
Message(Result.GetLog(True)); Try
Message(Result.GetLog(True));
Except
Message(ПолучитьСтрокуИзДвоичныхДанных(Result));
EndTry;
EndTry; EndTry;
Try Try
@@ -21184,7 +21198,11 @@ Procedure HTTPClient_SetURLParams(FunctionParameters)
Result["origin"] = "***"; Result["origin"] = "***";
Except Except
Message("Cant replace origin"); Message("Cant replace origin");
Message(Result.GetLog(True)); Try
Message(Result.GetLog(True));
Except
Message(ПолучитьСтрокуИзДвоичныхДанных(Result));
EndTry;
EndTry; EndTry;
Address = "/get?param1=text&param2=10"; Address = "/get?param1=text&param2=10";
@@ -21400,7 +21418,11 @@ Procedure HTTPClient_SetDataType(FunctionParameters)
Result["origin"] = "***"; Result["origin"] = "***";
Except Except
Message("Cant replace origin"); Message("Cant replace origin");
Message(Result.GetLog(True)); Try
Message(Result.GetLog(True));
Except
Message(ПолучитьСтрокуИзДвоичныхДанных(Result));
EndTry;
EndTry; EndTry;
OPI_TestDataRetrieval.WriteLog(Result, "SetDataType", "HTTPClient"); OPI_TestDataRetrieval.WriteLog(Result, "SetDataType", "HTTPClient");
@@ -21448,7 +21470,11 @@ Procedure HTTPClient_SetBinaryBody(FunctionParameters)
Result["data"] = "..."; Result["data"] = "...";
Except Except
Message("Cant replace origin"); Message("Cant replace origin");
Message(Result.GetLog(True)); Try
Message(Result.GetLog(True));
Except
Message(ПолучитьСтрокуИзДвоичныхДанных(Result));
EndTry;
EndTry; EndTry;
OPI_TestDataRetrieval.WriteLog(Result, "SetBinaryBody", "HTTPClient"); OPI_TestDataRetrieval.WriteLog(Result, "SetBinaryBody", "HTTPClient");
@@ -21462,6 +21488,265 @@ Procedure HTTPClient_SetBinaryBody(FunctionParameters)
EndProcedure EndProcedure
Procedure HTTPClient_SetStringBody(FunctionParameters)
URL = FunctionParameters["HTTP_URL"];
URL = URL + "/post";
Text = "Hello world!";
Encoding = "Windows-1251";
Result = OPI_HTTPRequests.NewRequest()
.Initialize(URL)
.UseEncoding(Encoding)
.SetStringBody(Text) // <---
.ProcessRequest("POST")
.ReturnResponseAsJSONObject();
// END
Try
Result["origin"] = "***";
Except
Message("Cant replace origin");
Try
Message(Result.GetLog(True));
Except
Message(ПолучитьСтрокуИзДвоичныхДанных(Result));
EndTry;
EndTry;
OPI_TestDataRetrieval.WriteLog(Result, "SetStringBody", "HTTPClient");
OPI_TestDataRetrieval.ExpectsThat(Result["headers"]["Content-Type"]).Равно("text/plain; charset=" + Encoding);
TextBD = ПолучитьДвоичныеДанныеИзСтроки(Text, Encoding);
Size = TextBD.Size();
OPI_TypeConversion.GetLine(Size);
OPI_TestDataRetrieval.ExpectsThat(Result["headers"]["Content-Length"]).Равно(Size);
TextB64 = "data:application/octet-stream;base64," + Base64String(TextBD);
OPI_TestDataRetrieval.ExpectsThat(Result["data"]).Равно(TextB64);
EndProcedure
Procedure HTTPClient_SetJsonBody(FunctionParameters)
URL = FunctionParameters["HTTP_URL"];
URL = URL + "/post";
RandomArray = New Array;
RandomArray.Add("A");
RandomArray.Add("B");
RandomArray.Add("C");
Data = New Structure("Field1,Field2,Field3", 10, "Text", RandomArray);
Result = OPI_HTTPRequests.NewRequest()
.Initialize(URL)
.SetJsonBody(Data) // <---
.ProcessRequest("POST")
.ReturnResponseAsJSONObject();
// END
Try
Result["origin"] = "***";
Except
Message("Cant replace origin");
Try
Message(Result.GetLog(True));
Except
Message(ПолучитьСтрокуИзДвоичныхДанных(Result));
EndTry;
EndTry;
OPI_TestDataRetrieval.WriteLog(Result, "SetStringBody", "HTTPClient");
OPI_TestDataRetrieval.ExpectsThat(Result["headers"]["Content-Type"]).Равно("application/json; charset=utf-8");
JSONResult = Result["json"];
JSONOriginal = Data;
OPI_TestDataRetrieval.ExpectsThat(JSONResult["Field1"]).Равно(JSONOriginal["Field1"]);
OPI_TestDataRetrieval.ExpectsThat(JSONResult["Field2"]).Равно(JSONOriginal["Field2"]);
OPI_TestDataRetrieval.ExpectsThat(JSONResult["Field3"][0]).Равно(JSONOriginal["Field3"][0]);
OPI_TestDataRetrieval.ExpectsThat(JSONResult["Field3"][1]).Равно(JSONOriginal["Field3"][1]);
OPI_TestDataRetrieval.ExpectsThat(JSONResult["Field3"][2]).Равно(JSONOriginal["Field3"][2]);
EndProcedure
Procedure HTTPClient_SetFormBody(FunctionParameters)
URL = FunctionParameters["HTTP_URL"];
URL = URL + "/post";
Data = New Structure("Field1,Field2", "10", "Text");
Result = OPI_HTTPRequests.NewRequest()
.Initialize(URL)
.SetFormBody(Data) // <---
.ProcessRequest("POST")
.ReturnResponseAsJSONObject();
// END
Try
Result["origin"] = "***";
Except
Message("Cant replace origin");
Try
Message(Result.GetLog(True));
Except
Message(ПолучитьСтрокуИзДвоичныхДанных(Result));
EndTry;
EndTry;
OPI_TestDataRetrieval.WriteLog(Result, "SetFormBody", "HTTPClient");
OPI_TestDataRetrieval.ExpectsThat(Result["headers"]["Content-Type"]).Равно("application/x-www-form-urlencoded; charset=utf-8");
OPI_TestDataRetrieval.ExpectsThat(Result["form"]["Field1"]).Равно(Data["Field1"]);
OPI_TestDataRetrieval.ExpectsThat(Result["form"]["Field2"]).Равно(Data["Field2"]);
EndProcedure
Procedure HTTPClient_StartMultipartBody(FunctionParameters)
URL = FunctionParameters["HTTP_URL"];
URL = URL + "/post";
Image = FunctionParameters["Picture"]; // URL, Path or Binary Data
Result = OPI_HTTPRequests.NewRequest()
.Initialize(URL)
.StartMultipartBody() // <---
.AddMultipartFormDataFile("file1", "pic.png", Image, "image/png")
.AddMultipartFormDataField("Field1", "Text")
.AddMultipartFormDataField("Field2", "10")
.ProcessRequest("POST")
.ReturnResponseAsJSONObject();
// END
Try
Result["origin"] = "***";
ResponseFile = Result["files"]["file1"];
Result["files"]["file1"] = "...";
Except
Message("Cant replace origin");
Try
Message(Result.GetLog(True));
Except
Message(ПолучитьСтрокуИзДвоичныхДанных(Result));
EndTry;
EndTry;
OPI_TestDataRetrieval.WriteLog(Result, "StartMultipartBody", "HTTPClient");
OPI_TestDataRetrieval.ExpectsThat(StrStartsWith(Result["headers"]["Content-Type"], "multipart/")).Равно(True);
OPI_TypeConversion.GetBinaryData(Image);
TextB64 = "data:image/png;base64," + Base64String(Image);
TextB64 = StrReplace(TextB64, Chars.CR + Chars.LF, "");
OPI_TestDataRetrieval.ExpectsThat(Result["form"]["Field1"]).Равно("Text");
OPI_TestDataRetrieval.ExpectsThat(Result["form"]["Field2"]).Равно("10");
OPI_TestDataRetrieval.ExpectsThat(ResponseFile).Равно(TextB64);
EndProcedure
Procedure HTTPClient_AddMultipartFormDataFile(FunctionParameters)
URL = FunctionParameters["HTTP_URL"];
URL = URL + "/post";
Image = FunctionParameters["Picture"]; // URL, Path or Binary Data
Result = OPI_HTTPRequests.NewRequest()
.Initialize(URL)
.StartMultipartBody()
.AddMultipartFormDataFile("file1", "pic.png", Image, "image/png") // <---
.AddMultipartFormDataField("Field1", "Text")
.AddMultipartFormDataField("Field2", "10")
.ProcessRequest("POST")
.ReturnResponseAsJSONObject();
// END
Try
Result["origin"] = "***";
ResponseFile = Result["files"]["file1"];
Result["files"]["file1"] = "...";
Except
Message("Cant replace origin");
Try
Message(Result.GetLog(True));
Except
Message(ПолучитьСтрокуИзДвоичныхДанных(Result));
EndTry;
EndTry;
OPI_TestDataRetrieval.WriteLog(Result, "AddMultipartFormDataFile", "HTTPClient");
OPI_TestDataRetrieval.ExpectsThat(StrStartsWith(Result["headers"]["Content-Type"], "multipart/")).Равно(True);
OPI_TypeConversion.GetBinaryData(Image);
TextB64 = "data:image/png;base64," + Base64String(Image);
TextB64 = StrReplace(TextB64, Chars.CR + Chars.LF, "");
OPI_TestDataRetrieval.ExpectsThat(Result["form"]["Field1"]).Равно("Text");
OPI_TestDataRetrieval.ExpectsThat(Result["form"]["Field2"]).Равно("10");
OPI_TestDataRetrieval.ExpectsThat(ResponseFile).Равно(TextB64);
EndProcedure
Procedure HTTPClient_AddMultipartFormDataField(FunctionParameters)
URL = FunctionParameters["HTTP_URL"];
URL = URL + "/post";
Image = FunctionParameters["Picture"]; // URL, Path or Binary Data
Result = OPI_HTTPRequests.NewRequest()
.Initialize(URL)
.StartMultipartBody()
.AddMultipartFormDataFile("file1", "pic.png", Image, "image/png")
.AddMultipartFormDataField("Field1", "Text") // <---
.AddMultipartFormDataField("Field2", "10") // <---
.ProcessRequest("POST")
.ReturnResponseAsJSONObject();
// END
Try
Result["origin"] = "***";
ResponseFile = Result["files"]["file1"];
Result["files"]["file1"] = "...";
Except
Message("Cant replace origin");
Try
Message(Result.GetLog(True));
Except
Message(ПолучитьСтрокуИзДвоичныхДанных(Result));
EndTry;
EndTry;
OPI_TestDataRetrieval.WriteLog(Result, "AddMultipartFormDataField", "HTTPClient");
OPI_TestDataRetrieval.ExpectsThat(StrStartsWith(Result["headers"]["Content-Type"], "multipart/")).Равно(True);
OPI_TypeConversion.GetBinaryData(Image);
TextB64 = "data:image/png;base64," + Base64String(Image);
TextB64 = StrReplace(TextB64, Chars.CR + Chars.LF, "");
OPI_TestDataRetrieval.ExpectsThat(Result["form"]["Field1"]).Равно("Text");
OPI_TestDataRetrieval.ExpectsThat(Result["form"]["Field2"]).Равно("10");
OPI_TestDataRetrieval.ExpectsThat(ResponseFile).Равно(TextB64);
EndProcedure
#EndRegion #EndRegion
#EndRegion #EndRegion

View File

@@ -294,6 +294,48 @@ EndFunction
#EndRegion #EndRegion
#Region Settings
Function UseEncoding(Val Encoding) Export
Try
If StopExecution() Then Return ЭтотОбъект EndIf;
AddLog("UseEncoding: Setting the value");
OPI_TypeConversion.GetLine(Encoding);
SetSetting("EncodeRequestBody", Encoding);
Return ЭтотОбъект;
Except
Return Error(DetailErrorDescription(ErrorInfo()));
EndTry;
EndFunction
Function UseGzipCompression(Val Flag) Export
Try
If StopExecution() Then Return ЭтотОбъект EndIf;
AddLog("UseGzipCompression: Setting the value");
OPI_TypeConversion.GetBoolean(Flag);
SetSetting("gzip", Flag);
Return ЭтотОбъект;
Except
Return Error(DetailErrorDescription(ErrorInfo()));
EndTry;
EndFunction
#EndRegion
#Region BodySet #Region BodySet
// Set binary body !NOCLI // Set binary body !NOCLI
@@ -350,12 +392,11 @@ EndFunction
// //
// Parameters: // Parameters:
// Data - String - Request body data - data // Data - String - Request body data - data
// Encoding - String - String encoding - enc
// WriteBOM - Boolean - True > BOM will be added - bom // WriteBOM - Boolean - True > BOM will be added - bom
// //
// Returns: // Returns:
// DataProcessorObject.OPI_HTTPClient - This processor object // DataProcessorObject.OPI_HTTPClient - This processor object
Function SetStringBody(Val Data, Val Encoding = "UTF-8", Val WriteBOM = False) Export Function SetStringBody(Val Data, Val WriteBOM = False) Export
Try Try
@@ -368,12 +409,16 @@ Function SetStringBody(Val Data, Val Encoding = "UTF-8", Val WriteBOM = False) E
Return ЭтотОбъект; Return ЭтотОбъект;
EndIf; EndIf;
Encoding = GetSetting("EncodeRequestBody");
OPI_TypeConversion.GetLine(Encoding);
If Not RequestTypeSetManualy Then If Not RequestTypeSetManualy Then
RequestDataType = "text/plain; charset=utf-8"; RequestDataType = StrTemplate("text/plain; charset=%1", Encoding);
EndIf; EndIf;
AddLog("SetStringBody: Beginning of body setting"); AddLog("SetStringBody: Beginning of body setting");
SetBodyFromString(Data, Encoding, WriteBOM); SetBodyFromString(Data, WriteBOM);
AddLog(StrTemplate("SetStringBody: Body set, size %1", RequestBody.Size())); AddLog(StrTemplate("SetStringBody: Body set, size %1", RequestBody.Size()));
Return ЭтотОбъект; Return ЭтотОбъект;
@@ -500,7 +545,8 @@ Function StartMultipartBody(UseFile = True, Val View = "form-data") Export
Multipart = True; Multipart = True;
Boundary = StrReplace(String(New UUID), "-", ""); Boundary = StrReplace(String(New UUID), "-", "");
LineSeparator = Chars.CR + Chars.LF; LineSeparator = Chars.CR + Chars.LF;
RequestDataType = StrTemplate("multipart/%1; boundary=%2", View, Boundary); Encoding = GetSetting("EncodeRequestBody");
RequestDataType = StrTemplate("multipart/%1; boundary=%2; charset=%3", View, Boundary, Encoding);
If UseFile Then If UseFile Then
@@ -509,7 +555,7 @@ Function StartMultipartBody(UseFile = True, Val View = "form-data") Export
RequestBodyFile = GetTempFileName(); RequestBodyFile = GetTempFileName();
BodyTemporaryFile = True; BodyTemporaryFile = True;
RequestDataWriter = New DataWriter(RequestBodyFile RequestDataWriter = New DataWriter(RequestBodyFile
, TextEncoding.UTF8 , Encoding
, ByteOrder.LittleEndian , ByteOrder.LittleEndian
, "" , ""
, False , False
@@ -523,13 +569,12 @@ Function StartMultipartBody(UseFile = True, Val View = "form-data") Export
RequestBodyStream = New MemoryStream(); RequestBodyStream = New MemoryStream();
RequestDataWriter = New DataWriter(RequestBodyStream RequestDataWriter = New DataWriter(RequestBodyStream
, TextEncoding.UTF8 , Encoding
, ByteOrder.LittleEndian , ByteOrder.LittleEndian
, "" , ""
, "" , ""
, False); , False);
EndIf; EndIf;
Return ЭтотОбъект; Return ЭтотОбъект;
@@ -1090,7 +1135,7 @@ Function ConvertParameterToString(Val Value)
OPI_TypeConversion.GetLine(Value); OPI_TypeConversion.GetLine(Value);
If EncodeURL Then If EncodeURL Then
Value = EncodeString(Value, StringEncodingMethod.URLInURLEncoding); Value = EncodeString(Value, StringEncodingMethod.URLencoding);
EndIf; EndIf;
EndIf; EndIf;
@@ -1108,9 +1153,10 @@ Function SetBodyFromBinary(Val Value)
EndFunction EndFunction
Function SetBodyFromString(Val Value, Val Encoding = "UTF-8", Val WriteBOM = False) Function SetBodyFromString(Val Value, Val WriteBOM = False)
Encoding = GetSetting("EncodeRequestBody");
OPI_TypeConversion.GetLine(Encoding);
OPI_TypeConversion.GetLine(Value); OPI_TypeConversion.GetLine(Value);
OPI_TypeConversion.GetBoolean(WriteBOM); OPI_TypeConversion.GetBoolean(WriteBOM);
@@ -1423,12 +1469,21 @@ EndFunction
Function GetResponseBody() Function GetResponseBody()
GZip = "gzip"; NeedsUnpacking = False;
Header1 = Response.Headers.Get("Content-Encoding"); For Each ResponseHeader In Response.Headers Do
Header2 = Response.Headers.Get("content-encoding");
NeedsUnpacking = Header1 = GZip Or Header2 = GZip; HeaderKey = ResponseHeader.Key;
HeaderValue = ResponseHeader.Value;
If Lower(HeaderKey) = "content-encoding" Then
If Lower(HeaderValue) = "gzip" Then
NeedsUnpacking = True;
Break;
EndIf;
EndIf;
EndDo;
If NeedsUnpacking Then If NeedsUnpacking Then
Data = UnpackResponse(Response); Data = UnpackResponse(Response);
@@ -2121,12 +2176,17 @@ Function GetSetting(Val SettingKey)
Return Settings[SettingKey]; Return Settings[SettingKey];
EndFunction EndFunction
Procedure SetSetting(Val SettingKey, Val Value)
Settings[SettingKey] = Value;
EndProcedure
Procedure SetDefaultSettings() Procedure SetDefaultSettings()
Settings = New Structure; Settings = New Structure;
Settings.Insert("gzip" , True); Settings.Insert("gzip" , True);
Settings.Insert("SplitArrayParams", False); Settings.Insert("SplitArrayParams" , False);
Settings.Insert("URLencoding" , True); Settings.Insert("URLencoding" , True);
Settings.Insert("EncodeRequestBody" , "UTF-8");
EndProcedure EndProcedure

View File

@@ -2643,6 +2643,12 @@ Procedure HTTP_BodySet() Export
OPI_TestDataRetrieval.ParameterToCollection("Picture" , TestParameters); OPI_TestDataRetrieval.ParameterToCollection("Picture" , TestParameters);
HTTPClient_SetBinaryBody(TestParameters); HTTPClient_SetBinaryBody(TestParameters);
HTTPClient_SetStringBody(TestParameters);
HTTPClient_SetJsonBody(TestParameters);
HTTPClient_SetFormBody(TestParameters);
HTTPClient_StartMultipartBody(TestParameters);
HTTPClient_AddMultipartFormDataField(TestParameters);
HTTPClient_AddMultipartFormDataFile(TestParameters);
EndProcedure EndProcedure
@@ -21072,7 +21078,11 @@ Procedure HTTPClient_Initialize(FunctionParameters)
Result["origin"] = "***"; Result["origin"] = "***";
Except Except
Message("Cant replace origin"); Message("Cant replace origin");
Message(Result.GetLog(True)); Try
Message(Result.GetLog(True));
Except
Message(GetStringFromBinaryData(Result));
EndTry;
EndTry; EndTry;
Try Try
@@ -21130,7 +21140,11 @@ Procedure HTTPClient_SetURL(FunctionParameters)
Result["origin"] = "***"; Result["origin"] = "***";
Except Except
Message("Cant replace origin"); Message("Cant replace origin");
Message(Result.GetLog(True)); Try
Message(Result.GetLog(True));
Except
Message(GetStringFromBinaryData(Result));
EndTry;
EndTry; EndTry;
Try Try
@@ -21184,7 +21198,11 @@ Procedure HTTPClient_SetURLParams(FunctionParameters)
Result["origin"] = "***"; Result["origin"] = "***";
Except Except
Message("Cant replace origin"); Message("Cant replace origin");
Message(Result.GetLog(True)); Try
Message(Result.GetLog(True));
Except
Message(GetStringFromBinaryData(Result));
EndTry;
EndTry; EndTry;
Address = "/get?param1=text&param2=10"; Address = "/get?param1=text&param2=10";
@@ -21400,7 +21418,11 @@ Procedure HTTPClient_SetDataType(FunctionParameters)
Result["origin"] = "***"; Result["origin"] = "***";
Except Except
Message("Cant replace origin"); Message("Cant replace origin");
Message(Result.GetLog(True)); Try
Message(Result.GetLog(True));
Except
Message(GetStringFromBinaryData(Result));
EndTry;
EndTry; EndTry;
OPI_TestDataRetrieval.WriteLog(Result, "SetDataType", "HTTPClient"); OPI_TestDataRetrieval.WriteLog(Result, "SetDataType", "HTTPClient");
@@ -21448,7 +21470,11 @@ Procedure HTTPClient_SetBinaryBody(FunctionParameters)
Result["data"] = "..."; Result["data"] = "...";
Except Except
Message("Cant replace origin"); Message("Cant replace origin");
Message(Result.GetLog(True)); Try
Message(Result.GetLog(True));
Except
Message(GetStringFromBinaryData(Result));
EndTry;
EndTry; EndTry;
OPI_TestDataRetrieval.WriteLog(Result, "SetBinaryBody", "HTTPClient"); OPI_TestDataRetrieval.WriteLog(Result, "SetBinaryBody", "HTTPClient");
@@ -21462,6 +21488,265 @@ Procedure HTTPClient_SetBinaryBody(FunctionParameters)
EndProcedure EndProcedure
Procedure HTTPClient_SetStringBody(FunctionParameters)
URL = FunctionParameters["HTTP_URL"];
URL = URL + "/post";
Text = "Hello world!";
Encoding = "Windows-1251";
Result = OPI_HTTPRequests.NewRequest()
.Initialize(URL)
.UseEncoding(Encoding)
.SetStringBody(Text) // <---
.ProcessRequest("POST")
.ReturnResponseAsJSONObject();
// END
Try
Result["origin"] = "***";
Except
Message("Cant replace origin");
Try
Message(Result.GetLog(True));
Except
Message(GetStringFromBinaryData(Result));
EndTry;
EndTry;
OPI_TestDataRetrieval.WriteLog(Result, "SetStringBody", "HTTPClient");
OPI_TestDataRetrieval.ExpectsThat(Result["headers"]["Content-Type"]).Равно("text/plain; charset=" + Encoding);
TextBD = GetBinaryDataFromString(Text, Encoding);
Size = TextBD.Size();
OPI_TypeConversion.GetLine(Size);
OPI_TestDataRetrieval.ExpectsThat(Result["headers"]["Content-Length"]).Равно(Size);
TextB64 = "data:application/octet-stream;base64," + Base64String(TextBD);
OPI_TestDataRetrieval.ExpectsThat(Result["data"]).Равно(TextB64);
EndProcedure
Procedure HTTPClient_SetJsonBody(FunctionParameters)
URL = FunctionParameters["HTTP_URL"];
URL = URL + "/post";
RandomArray = New Array;
RandomArray.Add("A");
RandomArray.Add("B");
RandomArray.Add("C");
Data = New Structure("Field1,Field2,Field3", 10, "Text", RandomArray);
Result = OPI_HTTPRequests.NewRequest()
.Initialize(URL)
.SetJsonBody(Data) // <---
.ProcessRequest("POST")
.ReturnResponseAsJSONObject();
// END
Try
Result["origin"] = "***";
Except
Message("Cant replace origin");
Try
Message(Result.GetLog(True));
Except
Message(GetStringFromBinaryData(Result));
EndTry;
EndTry;
OPI_TestDataRetrieval.WriteLog(Result, "SetStringBody", "HTTPClient");
OPI_TestDataRetrieval.ExpectsThat(Result["headers"]["Content-Type"]).Равно("application/json; charset=utf-8");
JSONResult = Result["json"];
JSONOriginal = Data;
OPI_TestDataRetrieval.ExpectsThat(JSONResult["Field1"]).Равно(JSONOriginal["Field1"]);
OPI_TestDataRetrieval.ExpectsThat(JSONResult["Field2"]).Равно(JSONOriginal["Field2"]);
OPI_TestDataRetrieval.ExpectsThat(JSONResult["Field3"][0]).Равно(JSONOriginal["Field3"][0]);
OPI_TestDataRetrieval.ExpectsThat(JSONResult["Field3"][1]).Равно(JSONOriginal["Field3"][1]);
OPI_TestDataRetrieval.ExpectsThat(JSONResult["Field3"][2]).Равно(JSONOriginal["Field3"][2]);
EndProcedure
Procedure HTTPClient_SetFormBody(FunctionParameters)
URL = FunctionParameters["HTTP_URL"];
URL = URL + "/post";
Data = New Structure("Field1,Field2", "10", "Text");
Result = OPI_HTTPRequests.NewRequest()
.Initialize(URL)
.SetFormBody(Data) // <---
.ProcessRequest("POST")
.ReturnResponseAsJSONObject();
// END
Try
Result["origin"] = "***";
Except
Message("Cant replace origin");
Try
Message(Result.GetLog(True));
Except
Message(GetStringFromBinaryData(Result));
EndTry;
EndTry;
OPI_TestDataRetrieval.WriteLog(Result, "SetFormBody", "HTTPClient");
OPI_TestDataRetrieval.ExpectsThat(Result["headers"]["Content-Type"]).Равно("application/x-www-form-urlencoded; charset=utf-8");
OPI_TestDataRetrieval.ExpectsThat(Result["form"]["Field1"]).Равно(Data["Field1"]);
OPI_TestDataRetrieval.ExpectsThat(Result["form"]["Field2"]).Равно(Data["Field2"]);
EndProcedure
Procedure HTTPClient_StartMultipartBody(FunctionParameters)
URL = FunctionParameters["HTTP_URL"];
URL = URL + "/post";
Image = FunctionParameters["Picture"]; // URL, Path or Binary Data
Result = OPI_HTTPRequests.NewRequest()
.Initialize(URL)
.StartMultipartBody() // <---
.AddMultipartFormDataFile("file1", "pic.png", Image, "image/png")
.AddMultipartFormDataField("Field1", "Text")
.AddMultipartFormDataField("Field2", "10")
.ProcessRequest("POST")
.ReturnResponseAsJSONObject();
// END
Try
Result["origin"] = "***";
ResponseFile = Result["files"]["file1"];
Result["files"]["file1"] = "...";
Except
Message("Cant replace origin");
Try
Message(Result.GetLog(True));
Except
Message(GetStringFromBinaryData(Result));
EndTry;
EndTry;
OPI_TestDataRetrieval.WriteLog(Result, "StartMultipartBody", "HTTPClient");
OPI_TestDataRetrieval.ExpectsThat(StrStartsWith(Result["headers"]["Content-Type"], "multipart/")).Равно(True);
OPI_TypeConversion.GetBinaryData(Image);
TextB64 = "data:image/png;base64," + Base64String(Image);
TextB64 = StrReplace(TextB64, Chars.CR + Chars.LF, "");
OPI_TestDataRetrieval.ExpectsThat(Result["form"]["Field1"]).Равно("Text");
OPI_TestDataRetrieval.ExpectsThat(Result["form"]["Field2"]).Равно("10");
OPI_TestDataRetrieval.ExpectsThat(ResponseFile).Равно(TextB64);
EndProcedure
Procedure HTTPClient_AddMultipartFormDataFile(FunctionParameters)
URL = FunctionParameters["HTTP_URL"];
URL = URL + "/post";
Image = FunctionParameters["Picture"]; // URL, Path or Binary Data
Result = OPI_HTTPRequests.NewRequest()
.Initialize(URL)
.StartMultipartBody()
.AddMultipartFormDataFile("file1", "pic.png", Image, "image/png") // <---
.AddMultipartFormDataField("Field1", "Text")
.AddMultipartFormDataField("Field2", "10")
.ProcessRequest("POST")
.ReturnResponseAsJSONObject();
// END
Try
Result["origin"] = "***";
ResponseFile = Result["files"]["file1"];
Result["files"]["file1"] = "...";
Except
Message("Cant replace origin");
Try
Message(Result.GetLog(True));
Except
Message(GetStringFromBinaryData(Result));
EndTry;
EndTry;
OPI_TestDataRetrieval.WriteLog(Result, "AddMultipartFormDataFile", "HTTPClient");
OPI_TestDataRetrieval.ExpectsThat(StrStartsWith(Result["headers"]["Content-Type"], "multipart/")).Равно(True);
OPI_TypeConversion.GetBinaryData(Image);
TextB64 = "data:image/png;base64," + Base64String(Image);
TextB64 = StrReplace(TextB64, Chars.CR + Chars.LF, "");
OPI_TestDataRetrieval.ExpectsThat(Result["form"]["Field1"]).Равно("Text");
OPI_TestDataRetrieval.ExpectsThat(Result["form"]["Field2"]).Равно("10");
OPI_TestDataRetrieval.ExpectsThat(ResponseFile).Равно(TextB64);
EndProcedure
Procedure HTTPClient_AddMultipartFormDataField(FunctionParameters)
URL = FunctionParameters["HTTP_URL"];
URL = URL + "/post";
Image = FunctionParameters["Picture"]; // URL, Path or Binary Data
Result = OPI_HTTPRequests.NewRequest()
.Initialize(URL)
.StartMultipartBody()
.AddMultipartFormDataFile("file1", "pic.png", Image, "image/png")
.AddMultipartFormDataField("Field1", "Text") // <---
.AddMultipartFormDataField("Field2", "10") // <---
.ProcessRequest("POST")
.ReturnResponseAsJSONObject();
// END
Try
Result["origin"] = "***";
ResponseFile = Result["files"]["file1"];
Result["files"]["file1"] = "...";
Except
Message("Cant replace origin");
Try
Message(Result.GetLog(True));
Except
Message(GetStringFromBinaryData(Result));
EndTry;
EndTry;
OPI_TestDataRetrieval.WriteLog(Result, "AddMultipartFormDataField", "HTTPClient");
OPI_TestDataRetrieval.ExpectsThat(StrStartsWith(Result["headers"]["Content-Type"], "multipart/")).Равно(True);
OPI_TypeConversion.GetBinaryData(Image);
TextB64 = "data:image/png;base64," + Base64String(Image);
TextB64 = StrReplace(TextB64, Chars.CR + Chars.LF, "");
OPI_TestDataRetrieval.ExpectsThat(Result["form"]["Field1"]).Равно("Text");
OPI_TestDataRetrieval.ExpectsThat(Result["form"]["Field2"]).Равно("10");
OPI_TestDataRetrieval.ExpectsThat(ResponseFile).Равно(TextB64);
EndProcedure
#EndRegion #EndRegion
#EndRegion #EndRegion

View File

@@ -294,6 +294,48 @@ EndFunction
#EndRegion #EndRegion
#Region Settings
Function UseEncoding(Val Encoding) Export
Try
If StopExecution() Then Return ThisObject EndIf;
AddLog("UseEncoding: Setting the value");
OPI_TypeConversion.GetLine(Encoding);
SetSetting("EncodeRequestBody", Encoding);
Return ThisObject;
Except
Return Error(DetailErrorDescription(ErrorInfo()));
EndTry;
EndFunction
Function UseGzipCompression(Val Flag) Export
Try
If StopExecution() Then Return ThisObject EndIf;
AddLog("UseGzipCompression: Setting the value");
OPI_TypeConversion.GetBoolean(Flag);
SetSetting("gzip", Flag);
Return ThisObject;
Except
Return Error(DetailErrorDescription(ErrorInfo()));
EndTry;
EndFunction
#EndRegion
#Region BodySet #Region BodySet
// Set binary body !NOCLI // Set binary body !NOCLI
@@ -350,12 +392,11 @@ EndFunction
// //
// Parameters: // Parameters:
// Data - String - Request body data - data // Data - String - Request body data - data
// Encoding - String - String encoding - enc
// WriteBOM - Boolean - True > BOM will be added - bom // WriteBOM - Boolean - True > BOM will be added - bom
// //
// Returns: // Returns:
// DataProcessorObject.OPI_HTTPClient - This processor object // DataProcessorObject.OPI_HTTPClient - This processor object
Function SetStringBody(Val Data, Val Encoding = "UTF-8", Val WriteBOM = False) Export Function SetStringBody(Val Data, Val WriteBOM = False) Export
Try Try
@@ -368,12 +409,16 @@ Function SetStringBody(Val Data, Val Encoding = "UTF-8", Val WriteBOM = False) E
Return ThisObject; Return ThisObject;
EndIf; EndIf;
Encoding = GetSetting("EncodeRequestBody");
OPI_TypeConversion.GetLine(Encoding);
If Not RequestTypeSetManualy Then If Not RequestTypeSetManualy Then
RequestDataType = "text/plain; charset=utf-8"; RequestDataType = StrTemplate("text/plain; charset=%1", Encoding);
EndIf; EndIf;
AddLog("SetStringBody: Beginning of body setting"); AddLog("SetStringBody: Beginning of body setting");
SetBodyFromString(Data, Encoding, WriteBOM); SetBodyFromString(Data, WriteBOM);
AddLog(StrTemplate("SetStringBody: Body set, size %1", RequestBody.Size())); AddLog(StrTemplate("SetStringBody: Body set, size %1", RequestBody.Size()));
Return ThisObject; Return ThisObject;
@@ -500,7 +545,8 @@ Function StartMultipartBody(UseFile = True, Val View = "form-data") Export
Multipart = True; Multipart = True;
Boundary = StrReplace(String(New UUID), "-", ""); Boundary = StrReplace(String(New UUID), "-", "");
LineSeparator = Chars.CR + Chars.LF; LineSeparator = Chars.CR + Chars.LF;
RequestDataType = StrTemplate("multipart/%1; boundary=%2", View, Boundary); Encoding = GetSetting("EncodeRequestBody");
RequestDataType = StrTemplate("multipart/%1; boundary=%2; charset=%3", View, Boundary, Encoding);
If UseFile Then If UseFile Then
@@ -509,7 +555,7 @@ Function StartMultipartBody(UseFile = True, Val View = "form-data") Export
RequestBodyFile = GetTempFileName(); RequestBodyFile = GetTempFileName();
BodyTemporaryFile = True; BodyTemporaryFile = True;
RequestDataWriter = New DataWriter(RequestBodyFile RequestDataWriter = New DataWriter(RequestBodyFile
, TextEncoding.UTF8 , Encoding
, ByteOrder.LittleEndian , ByteOrder.LittleEndian
, "" , ""
, False , False
@@ -523,13 +569,12 @@ Function StartMultipartBody(UseFile = True, Val View = "form-data") Export
RequestBodyStream = New MemoryStream(); RequestBodyStream = New MemoryStream();
RequestDataWriter = New DataWriter(RequestBodyStream RequestDataWriter = New DataWriter(RequestBodyStream
, TextEncoding.UTF8 , Encoding
, ByteOrder.LittleEndian , ByteOrder.LittleEndian
, "" , ""
, "" , ""
, False); , False);
EndIf; EndIf;
Return ThisObject; Return ThisObject;
@@ -1090,7 +1135,7 @@ Function ConvertParameterToString(Val Value)
OPI_TypeConversion.GetLine(Value); OPI_TypeConversion.GetLine(Value);
If EncodeURL Then If EncodeURL Then
Value = EncodeString(Value, StringEncodingMethod.URLInURLEncoding); Value = EncodeString(Value, StringEncodingMethod.URLencoding);
EndIf; EndIf;
EndIf; EndIf;
@@ -1108,9 +1153,10 @@ Function SetBodyFromBinaryData(Val Value)
EndFunction EndFunction
Function SetBodyFromString(Val Value, Val Encoding = "UTF-8", Val WriteBOM = False) Function SetBodyFromString(Val Value, Val WriteBOM = False)
Encoding = GetSetting("EncodeRequestBody");
OPI_TypeConversion.GetLine(Encoding);
OPI_TypeConversion.GetLine(Value); OPI_TypeConversion.GetLine(Value);
OPI_TypeConversion.GetBoolean(WriteBOM); OPI_TypeConversion.GetBoolean(WriteBOM);
@@ -1423,12 +1469,21 @@ EndFunction
Function GetResponseBody() Function GetResponseBody()
GZip = "gzip"; NeedsUnpacking = False;
Header1 = Response.Headers.Get("Content-Encoding"); For Each ResponseHeader In Response.Headers Do
Header2 = Response.Headers.Get("content-encoding");
NeedsUnpacking = Header1 = GZip Or Header2 = GZip; HeaderKey = ResponseHeader.Key;
HeaderValue = ResponseHeader.Value;
If Lower(HeaderKey) = "content-encoding" Then
If Lower(HeaderValue) = "gzip" Then
NeedsUnpacking = True;
Break;
EndIf;
EndIf;
EndDo;
If NeedsUnpacking Then If NeedsUnpacking Then
Data = UnpackResponse(Response); Data = UnpackResponse(Response);
@@ -2121,12 +2176,17 @@ Function GetSetting(Val SettingKey)
Return Settings[SettingKey]; Return Settings[SettingKey];
EndFunction EndFunction
Procedure SetSetting(Val SettingKey, Val Value)
Settings[SettingKey] = Value;
EndProcedure
Procedure SetDefaultSettings() Procedure SetDefaultSettings()
Settings = New Structure; Settings = New Structure;
Settings.Insert("gzip" , True); Settings.Insert("gzip" , True);
Settings.Insert("SplitArrayParams", False); Settings.Insert("SplitArrayParams" , False);
Settings.Insert("URLencoding" , True); Settings.Insert("URLencoding" , True);
Settings.Insert("EncodeRequestBody" , "UTF-8");
EndProcedure EndProcedure

View File

@@ -2647,9 +2647,9 @@
HTTPКлиент_УстановитьJsonТело(ПараметрыТеста); HTTPКлиент_УстановитьJsonТело(ПараметрыТеста);
HTTPКлиент_УстановитьFormТело(ПараметрыТеста); HTTPКлиент_УстановитьFormТело(ПараметрыТеста);
HTTPКлиент_НачатьЗаписьТелаMultipart(ПараметрыТеста); HTTPКлиент_НачатьЗаписьТелаMultipart(ПараметрыТеста);
HTTPКлиент_ДобавитьПолеMultipartFormData(ПараметрыТеста); HTTPКлиент_ДобавитьПолеMultipartFormData(ПараметрыТеста);
HTTPКлиент_ДобавитьФайлMultipartFormData(ПараметрыТеста); HTTPКлиент_ДобавитьФайлMultipartFormData(ПараметрыТеста);
КонецПроцедуры КонецПроцедуры
#КонецОбласти #КонецОбласти
@@ -21493,12 +21493,12 @@
URL = ПараметрыФункции["HTTP_URL"]; URL = ПараметрыФункции["HTTP_URL"];
URL = URL + "/post"; URL = URL + "/post";
Текст = "Привет мир!"; Текст = "Привет мир!";
Кодировка = "Windows-1251"; Кодировка = "Windows-1251";
Результат = OPI_ЗапросыHTTP.НовыйЗапрос() Результат = OPI_ЗапросыHTTP.НовыйЗапрос()
.Инициализировать(URL) .Инициализировать(URL)
.ИспользоватьКодировку(Кодировка) .ИспользоватьКодировку(Кодировка)
.УстановитьСтроковоеТело(Текст) // <--- .УстановитьСтроковоеТело(Текст) // <---
.ОбработатьЗапрос("POST") .ОбработатьЗапрос("POST")
.ВернутьОтветКакJSONКоллекцию(); .ВернутьОтветКакJSONКоллекцию();
@@ -21522,27 +21522,27 @@
ТекстДД = ПолучитьДвоичныеДанныеИзСтроки(Текст, Кодировка); ТекстДД = ПолучитьДвоичныеДанныеИзСтроки(Текст, Кодировка);
Размер = ТекстДД.Размер(); Размер = ТекстДД.Размер();
OPI_ПреобразованиеТипов.ПолучитьСтроку(Размер); OPI_ПреобразованиеТипов.ПолучитьСтроку(Размер);
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["headers"]["Content-Length"]).Равно(Размер); OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["headers"]["Content-Length"]).Равно(Размер);
ТекстB64 = "data:application/octet-stream;base64," + Base64Строка(ТекстДД); ТекстB64 = "data:application/octet-stream;base64," + Base64Строка(ТекстДД);
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["data"]).Равно(ТекстB64); OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["data"]).Равно(ТекстB64);
КонецПроцедуры КонецПроцедуры
Процедура HTTPКлиент_УстановитьJsonТело(ПараметрыФункции) Процедура HTTPКлиент_УстановитьJsonТело(ПараметрыФункции)
URL = ПараметрыФункции["HTTP_URL"]; URL = ПараметрыФункции["HTTP_URL"];
URL = URL + "/post"; URL = URL + "/post";
СлучайныйМассив = Новый Массив; СлучайныйМассив = Новый Массив;
СлучайныйМассив.Добавить("A"); СлучайныйМассив.Добавить("A");
СлучайныйМассив.Добавить("B"); СлучайныйМассив.Добавить("B");
СлучайныйМассив.Добавить("C"); СлучайныйМассив.Добавить("C");
Данные = Новый Структура("Поле1,Поле2,Поле3", 10, "Текст", СлучайныйМассив); Данные = Новый Структура("Поле1,Поле2,Поле3", 10, "Текст", СлучайныйМассив);
Результат = OPI_ЗапросыHTTP.НовыйЗапрос() Результат = OPI_ЗапросыHTTP.НовыйЗапрос()
.Инициализировать(URL) .Инициализировать(URL)
.УстановитьJsonТело(Данные) // <--- .УстановитьJsonТело(Данные) // <---
@@ -21555,7 +21555,7 @@
Результат["origin"] = "***"; Результат["origin"] = "***";
Исключение Исключение
Сообщить("Не удалось заменить origin"); Сообщить("Не удалось заменить origin");
Попытка Попытка
Сообщить(Результат.ПолучитьЛог(Истина)); Сообщить(Результат.ПолучитьЛог(Истина));
Исключение Исключение
@@ -21565,25 +21565,25 @@
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "УстановитьСтроковоеТело", "HTTPКлиент"); OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "УстановитьСтроковоеТело", "HTTPКлиент");
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["headers"]["Content-Type"]).Равно("application/json; charset=utf-8"); OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["headers"]["Content-Type"]).Равно("application/json; charset=utf-8");
JSONРезультат = Результат["json"]; JSONРезультат = Результат["json"];
JSONОригинал = Данные; JSONОригинал = Данные;
OPI_ПолучениеДанныхТестов.ОжидаетЧто(JSONРезультат["Поле1"]).Равно(JSONОригинал["Поле1"]); OPI_ПолучениеДанныхТестов.ОжидаетЧто(JSONРезультат["Поле1"]).Равно(JSONОригинал["Поле1"]);
OPI_ПолучениеДанныхТестов.ОжидаетЧто(JSONРезультат["Поле2"]).Равно(JSONОригинал["Поле2"]); OPI_ПолучениеДанныхТестов.ОжидаетЧто(JSONРезультат["Поле2"]).Равно(JSONОригинал["Поле2"]);
OPI_ПолучениеДанныхТестов.ОжидаетЧто(JSONРезультат["Поле3"][0]).Равно(JSONОригинал["Поле3"][0]); OPI_ПолучениеДанныхТестов.ОжидаетЧто(JSONРезультат["Поле3"][0]).Равно(JSONОригинал["Поле3"][0]);
OPI_ПолучениеДанныхТестов.ОжидаетЧто(JSONРезультат["Поле3"][1]).Равно(JSONОригинал["Поле3"][1]); OPI_ПолучениеДанныхТестов.ОжидаетЧто(JSONРезультат["Поле3"][1]).Равно(JSONОригинал["Поле3"][1]);
OPI_ПолучениеДанныхТестов.ОжидаетЧто(JSONРезультат["Поле3"][2]).Равно(JSONОригинал["Поле3"][2]); OPI_ПолучениеДанныхТестов.ОжидаетЧто(JSONРезультат["Поле3"][2]).Равно(JSONОригинал["Поле3"][2]);
КонецПроцедуры КонецПроцедуры
Процедура HTTPКлиент_УстановитьFormТело(ПараметрыФункции) Процедура HTTPКлиент_УстановитьFormТело(ПараметрыФункции)
URL = ПараметрыФункции["HTTP_URL"]; URL = ПараметрыФункции["HTTP_URL"];
URL = URL + "/post"; URL = URL + "/post";
Данные = Новый Структура("Поле1,Поле2", "10", "Текст"); Данные = Новый Структура("Поле1,Поле2", "10", "Текст");
Результат = OPI_ЗапросыHTTP.НовыйЗапрос() Результат = OPI_ЗапросыHTTP.НовыйЗапрос()
.Инициализировать(URL) .Инициализировать(URL)
.УстановитьFormТело(Данные) // <--- .УстановитьFormТело(Данные) // <---
@@ -21596,7 +21596,7 @@
Результат["origin"] = "***"; Результат["origin"] = "***";
Исключение Исключение
Сообщить("Не удалось заменить origin"); Сообщить("Не удалось заменить origin");
Попытка Попытка
Сообщить(Результат.ПолучитьЛог(Истина)); Сообщить(Результат.ПолучитьЛог(Истина));
Исключение Исключение
@@ -21609,7 +21609,7 @@
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["form"]["Поле1"]).Равно(Данные["Поле1"]); OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["form"]["Поле1"]).Равно(Данные["Поле1"]);
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["form"]["Поле2"]).Равно(Данные["Поле2"]); OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["form"]["Поле2"]).Равно(Данные["Поле2"]);
КонецПроцедуры КонецПроцедуры
Процедура HTTPКлиент_НачатьЗаписьТелаMultipart(ПараметрыФункции) Процедура HTTPКлиент_НачатьЗаписьТелаMultipart(ПараметрыФункции)
@@ -21618,7 +21618,7 @@
URL = URL + "/post"; URL = URL + "/post";
Картинка = ПараметрыФункции["Picture"]; // URL, Путь или Двоичные данные Картинка = ПараметрыФункции["Picture"]; // URL, Путь или Двоичные данные
Результат = OPI_ЗапросыHTTP.НовыйЗапрос() Результат = OPI_ЗапросыHTTP.НовыйЗапрос()
.Инициализировать(URL) .Инициализировать(URL)
.НачатьЗаписьТелаMultipart() // <--- .НачатьЗаписьТелаMultipart() // <---
@@ -21631,12 +21631,12 @@
// END // END
Попытка Попытка
Результат["origin"] = "***"; Результат["origin"] = "***";
ФайлОтвета = Результат["files"]["file1"]; ФайлОтвета = Результат["files"]["file1"];
Результат["files"]["file1"] = "..."; Результат["files"]["file1"] = "...";
Исключение Исключение
Сообщить("Не удалось заменить origin"); Сообщить("Не удалось заменить origin");
Попытка Попытка
Сообщить(Результат.ПолучитьЛог(Истина)); Сообщить(Результат.ПолучитьЛог(Истина));
Исключение Исключение
@@ -21646,14 +21646,14 @@
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "НачатьЗаписьТелаMultipart", "HTTPКлиент"); OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "НачатьЗаписьТелаMultipart", "HTTPКлиент");
OPI_ПолучениеДанныхТестов.ОжидаетЧто(СтрНачинаетсяС(Результат["headers"]["Content-Type"], "multipart/")).Равно(Истина); OPI_ПолучениеДанныхТестов.ОжидаетЧто(СтрНачинаетсяС(Результат["headers"]["Content-Type"], "multipart/")).Равно(Истина);
OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(Картинка); OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(Картинка);
ТекстB64 = "data:image/png;base64," + Base64Строка(Картинка); ТекстB64 = "data:image/png;base64," + Base64Строка(Картинка);
ТекстB64 = СтрЗаменить(ТекстB64, Символы.ВК + Символы.ПС, ""); ТекстB64 = СтрЗаменить(ТекстB64, Символы.ВК + Символы.ПС, "");
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["form"]["Поле1"]).Равно("Текст"); OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["form"]["Поле1"]).Равно("Текст");
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["form"]["Поле2"]).Равно("10"); OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["form"]["Поле2"]).Равно("10");
OPI_ПолучениеДанныхТестов.ОжидаетЧто(ФайлОтвета).Равно(ТекстB64); OPI_ПолучениеДанныхТестов.ОжидаетЧто(ФайлОтвета).Равно(ТекстB64);
КонецПроцедуры КонецПроцедуры
@@ -21663,10 +21663,10 @@
URL = URL + "/post"; URL = URL + "/post";
Картинка = ПараметрыФункции["Picture"]; // URL, Путь или Двоичные данные Картинка = ПараметрыФункции["Picture"]; // URL, Путь или Двоичные данные
Результат = OPI_ЗапросыHTTP.НовыйЗапрос() Результат = OPI_ЗапросыHTTP.НовыйЗапрос()
.Инициализировать(URL) .Инициализировать(URL)
.НачатьЗаписьТелаMultipart() .НачатьЗаписьТелаMultipart()
.ДобавитьФайлMultipartFormData("file1", "pic.png", Картинка, "image/png") // <--- .ДобавитьФайлMultipartFormData("file1", "pic.png", Картинка, "image/png") // <---
.ДобавитьПолеMultipartFormData("Поле1", "Текст") .ДобавитьПолеMultipartFormData("Поле1", "Текст")
.ДобавитьПолеMultipartFormData("Поле2", "10") .ДобавитьПолеMultipartFormData("Поле2", "10")
@@ -21676,12 +21676,12 @@
// END // END
Попытка Попытка
Результат["origin"] = "***"; Результат["origin"] = "***";
ФайлОтвета = Результат["files"]["file1"]; ФайлОтвета = Результат["files"]["file1"];
Результат["files"]["file1"] = "..."; Результат["files"]["file1"] = "...";
Исключение Исключение
Сообщить("Не удалось заменить origin"); Сообщить("Не удалось заменить origin");
Попытка Попытка
Сообщить(Результат.ПолучитьЛог(Истина)); Сообщить(Результат.ПолучитьЛог(Истина));
Исключение Исключение
@@ -21691,14 +21691,14 @@
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ДобавитьФайлMultipartFormData", "HTTPКлиент"); OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ДобавитьФайлMultipartFormData", "HTTPКлиент");
OPI_ПолучениеДанныхТестов.ОжидаетЧто(СтрНачинаетсяС(Результат["headers"]["Content-Type"], "multipart/")).Равно(Истина); OPI_ПолучениеДанныхТестов.ОжидаетЧто(СтрНачинаетсяС(Результат["headers"]["Content-Type"], "multipart/")).Равно(Истина);
OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(Картинка); OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(Картинка);
ТекстB64 = "data:image/png;base64," + Base64Строка(Картинка); ТекстB64 = "data:image/png;base64," + Base64Строка(Картинка);
ТекстB64 = СтрЗаменить(ТекстB64, Символы.ВК + Символы.ПС, ""); ТекстB64 = СтрЗаменить(ТекстB64, Символы.ВК + Символы.ПС, "");
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["form"]["Поле1"]).Равно("Текст"); OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["form"]["Поле1"]).Равно("Текст");
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["form"]["Поле2"]).Равно("10"); OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["form"]["Поле2"]).Равно("10");
OPI_ПолучениеДанныхТестов.ОжидаетЧто(ФайлОтвета).Равно(ТекстB64); OPI_ПолучениеДанныхТестов.ОжидаетЧто(ФайлОтвета).Равно(ТекстB64);
КонецПроцедуры КонецПроцедуры
@@ -21708,11 +21708,11 @@
URL = URL + "/post"; URL = URL + "/post";
Картинка = ПараметрыФункции["Picture"]; // URL, Путь или Двоичные данные Картинка = ПараметрыФункции["Picture"]; // URL, Путь или Двоичные данные
Результат = OPI_ЗапросыHTTP.НовыйЗапрос() Результат = OPI_ЗапросыHTTP.НовыйЗапрос()
.Инициализировать(URL) .Инициализировать(URL)
.НачатьЗаписьТелаMultipart() .НачатьЗаписьТелаMultipart()
.ДобавитьФайлMultipartFormData("file1", "pic.png", Картинка, "image/png") .ДобавитьФайлMultipartFormData("file1", "pic.png", Картинка, "image/png")
.ДобавитьПолеMultipartFormData("Поле1", "Текст") // <--- .ДобавитьПолеMultipartFormData("Поле1", "Текст") // <---
.ДобавитьПолеMultipartFormData("Поле2", "10") // <--- .ДобавитьПолеMultipartFormData("Поле2", "10") // <---
.ОбработатьЗапрос("POST") .ОбработатьЗапрос("POST")
@@ -21721,12 +21721,12 @@
// END // END
Попытка Попытка
Результат["origin"] = "***"; Результат["origin"] = "***";
ФайлОтвета = Результат["files"]["file1"]; ФайлОтвета = Результат["files"]["file1"];
Результат["files"]["file1"] = "..."; Результат["files"]["file1"] = "...";
Исключение Исключение
Сообщить("Не удалось заменить origin"); Сообщить("Не удалось заменить origin");
Попытка Попытка
Сообщить(Результат.ПолучитьЛог(Истина)); Сообщить(Результат.ПолучитьЛог(Истина));
Исключение Исключение
@@ -21736,14 +21736,14 @@
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ДобавитьПолеMultipartFormData", "HTTPКлиент"); OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ДобавитьПолеMultipartFormData", "HTTPКлиент");
OPI_ПолучениеДанныхТестов.ОжидаетЧто(СтрНачинаетсяС(Результат["headers"]["Content-Type"], "multipart/")).Равно(Истина); OPI_ПолучениеДанныхТестов.ОжидаетЧто(СтрНачинаетсяС(Результат["headers"]["Content-Type"], "multipart/")).Равно(Истина);
OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(Картинка); OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(Картинка);
ТекстB64 = "data:image/png;base64," + Base64Строка(Картинка); ТекстB64 = "data:image/png;base64," + Base64Строка(Картинка);
ТекстB64 = СтрЗаменить(ТекстB64, Символы.ВК + Символы.ПС, ""); ТекстB64 = СтрЗаменить(ТекстB64, Символы.ВК + Символы.ПС, "");
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["form"]["Поле1"]).Равно("Текст"); OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["form"]["Поле1"]).Равно("Текст");
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["form"]["Поле2"]).Равно("10"); OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["form"]["Поле2"]).Равно("10");
OPI_ПолучениеДанныхТестов.ОжидаетЧто(ФайлОтвета).Равно(ТекстB64); OPI_ПолучениеДанныхТестов.ОжидаетЧто(ФайлОтвета).Равно(ТекстB64);
КонецПроцедуры КонецПроцедуры

View File

@@ -2463,9 +2463,9 @@
КонецФункции КонецФункции
Функция ПолучитьОбщийМодуль(Знач Имя) Функция ПолучитьОбщийМодуль(Знач Имя)
Модуль = Вычислить(Имя); Модуль = Вычислить(Имя);
Возврат Модуль; Возврат Модуль;
КонецФункции КонецФункции

View File

@@ -297,16 +297,16 @@
#Область Настройки #Область Настройки
Функция ИспользоватьКодировку(Знач Кодировка) Экспорт Функция ИспользоватьКодировку(Знач Кодировка) Экспорт
Попытка Попытка
Если ОстановитьРаботу() Тогда Возврат ЭтотОбъект КонецЕсли; Если ОстановитьРаботу() Тогда Возврат ЭтотОбъект КонецЕсли;
ДобавитьЛог("ИспользоватьКодировку: Установка значения"); ДобавитьЛог("ИспользоватьКодировку: Установка значения");
OPI_ПреобразованиеТипов.ПолучитьСтроку(Кодировка); OPI_ПреобразованиеТипов.ПолучитьСтроку(Кодировка);
УстановитьНастройку("КодировкаТелаЗапроса", Кодировка); УстановитьНастройку("КодировкаТелаЗапроса", Кодировка);
Возврат ЭтотОбъект; Возврат ЭтотОбъект;
Исключение Исключение
@@ -316,22 +316,22 @@
КонецФункции КонецФункции
Функция ИспользоватьСжатиеGzip(Знач Флаг) Экспорт Функция ИспользоватьСжатиеGzip(Знач Флаг) Экспорт
Попытка Попытка
Если ОстановитьРаботу() Тогда Возврат ЭтотОбъект КонецЕсли; Если ОстановитьРаботу() Тогда Возврат ЭтотОбъект КонецЕсли;
ДобавитьЛог("ИспользоватьСжатиеGzip: Установка значения"); ДобавитьЛог("ИспользоватьСжатиеGzip: Установка значения");
OPI_ПреобразованиеТипов.ПолучитьБулево(Флаг); OPI_ПреобразованиеТипов.ПолучитьБулево(Флаг);
УстановитьНастройку("gzip", Флаг); УстановитьНастройку("gzip", Флаг);
Возврат ЭтотОбъект; Возврат ЭтотОбъект;
Исключение Исключение
Возврат Ошибка(ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); Возврат Ошибка(ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
КонецПопытки; КонецПопытки;
КонецФункции КонецФункции
#КонецОбласти #КонецОбласти
@@ -408,11 +408,11 @@
ДобавитьЛог("УстановитьСтроковоеТело: Нет данных, пропуск"); ДобавитьЛог("УстановитьСтроковоеТело: Нет данных, пропуск");
Возврат ЭтотОбъект; Возврат ЭтотОбъект;
КонецЕсли; КонецЕсли;
Кодировка = ПолучитьНастройку("КодировкаТелаЗапроса"); Кодировка = ПолучитьНастройку("КодировкаТелаЗапроса");
OPI_ПреобразованиеТипов.ПолучитьСтроку(Кодировка); OPI_ПреобразованиеТипов.ПолучитьСтроку(Кодировка);
Если Не ЗапросТипУстановленВручную Тогда Если Не ЗапросТипУстановленВручную Тогда
ЗапросТипДанных = СтрШаблон("text/plain; charset=%1", Кодировка); ЗапросТипДанных = СтрШаблон("text/plain; charset=%1", Кодировка);
КонецЕсли; КонецЕсли;
@@ -1156,7 +1156,7 @@
Функция УстановитьТелоИзСтроки(Знач Значение, Знач ЗаписатьBOM = Ложь) Функция УстановитьТелоИзСтроки(Знач Значение, Знач ЗаписатьBOM = Ложь)
Кодировка = ПолучитьНастройку("КодировкаТелаЗапроса"); Кодировка = ПолучитьНастройку("КодировкаТелаЗапроса");
OPI_ПреобразованиеТипов.ПолучитьСтроку(Значение); OPI_ПреобразованиеТипов.ПолучитьСтроку(Значение);
OPI_ПреобразованиеТипов.ПолучитьБулево(ЗаписатьBOM); OPI_ПреобразованиеТипов.ПолучитьБулево(ЗаписатьBOM);
@@ -1469,21 +1469,21 @@
Функция ПолучитьТелоОтвета() Функция ПолучитьТелоОтвета()
НужнаРаспаковка = Ложь; НужнаРаспаковка = Ложь;
Для Каждого ЗаголовокОтвета Из Ответ.Заголовки Цикл Для Каждого ЗаголовокОтвета Из Ответ.Заголовки Цикл
КлючЗаголовка = ЗаголовокОтвета.Ключ; КлючЗаголовка = ЗаголовокОтвета.Ключ;
ЗначениеЗаголовка = ЗаголовокОтвета.Значение; ЗначениеЗаголовка = ЗаголовокОтвета.Значение;
Если нРег(КлючЗаголовка) = "content-encoding" Тогда Если нРег(КлючЗаголовка) = "content-encoding" Тогда
Если нРег(ЗначениеЗаголовка) = "gzip" Тогда Если нРег(ЗначениеЗаголовка) = "gzip" Тогда
НужнаРаспаковка = Истина; НужнаРаспаковка = Истина;
Прервать; Прервать;
КонецЕсли; КонецЕсли;
КонецЕсли; КонецЕсли;
КонецЦикла; КонецЦикла;
Если НужнаРаспаковка Тогда Если НужнаРаспаковка Тогда
Данные = РаспаковатьОтвет(Ответ); Данные = РаспаковатьОтвет(Ответ);
@@ -2177,7 +2177,7 @@
КонецФункции КонецФункции
Процедура УстановитьНастройку(Знач КлючНастройки, Знач Значение) Процедура УстановитьНастройку(Знач КлючНастройки, Знач Значение)
Настройки[КлючНастройки] = Значение; Настройки[КлючНастройки] = Значение;
КонецПроцедуры КонецПроцедуры
Процедура УстановитьСтандартныеНастройки() Процедура УстановитьСтандартныеНастройки()

View File

@@ -1,4 +1,4 @@
// OneScript: ./OInt/tests/Modules/internal/OPI_Тесты.os // OneScript: ./OInt/tests/Modules/internal/OPI_Тесты.os
// MIT License // MIT License
@@ -2647,9 +2647,9 @@
HTTPКлиент_УстановитьJsonТело(ПараметрыТеста); HTTPКлиент_УстановитьJsonТело(ПараметрыТеста);
HTTPКлиент_УстановитьFormТело(ПараметрыТеста); HTTPКлиент_УстановитьFormТело(ПараметрыТеста);
HTTPКлиент_НачатьЗаписьТелаMultipart(ПараметрыТеста); HTTPКлиент_НачатьЗаписьТелаMultipart(ПараметрыТеста);
HTTPКлиент_ДобавитьПолеMultipartFormData(ПараметрыТеста); HTTPКлиент_ДобавитьПолеMultipartFormData(ПараметрыТеста);
HTTPКлиент_ДобавитьФайлMultipartFormData(ПараметрыТеста); HTTPКлиент_ДобавитьФайлMultipartFormData(ПараметрыТеста);
КонецПроцедуры КонецПроцедуры
#КонецОбласти #КонецОбласти
@@ -21493,12 +21493,12 @@
URL = ПараметрыФункции["HTTP_URL"]; URL = ПараметрыФункции["HTTP_URL"];
URL = URL + "/post"; URL = URL + "/post";
Текст = "Привет мир!"; Текст = "Привет мир!";
Кодировка = "Windows-1251"; Кодировка = "Windows-1251";
Результат = OPI_ЗапросыHTTP.НовыйЗапрос() Результат = OPI_ЗапросыHTTP.НовыйЗапрос()
.Инициализировать(URL) .Инициализировать(URL)
.ИспользоватьКодировку(Кодировка) .ИспользоватьКодировку(Кодировка)
.УстановитьСтроковоеТело(Текст) // <--- .УстановитьСтроковоеТело(Текст) // <---
.ОбработатьЗапрос("POST") .ОбработатьЗапрос("POST")
.ВернутьОтветКакJSONКоллекцию(); .ВернутьОтветКакJSONКоллекцию();
@@ -21522,27 +21522,27 @@
ТекстДД = ПолучитьДвоичныеДанныеИзСтроки(Текст, Кодировка); ТекстДД = ПолучитьДвоичныеДанныеИзСтроки(Текст, Кодировка);
Размер = ТекстДД.Размер(); Размер = ТекстДД.Размер();
OPI_ПреобразованиеТипов.ПолучитьСтроку(Размер); OPI_ПреобразованиеТипов.ПолучитьСтроку(Размер);
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["headers"]["Content-Length"]).Равно(Размер); OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["headers"]["Content-Length"]).Равно(Размер);
ТекстB64 = "data:application/octet-stream;base64," + Base64Строка(ТекстДД); ТекстB64 = "data:application/octet-stream;base64," + Base64Строка(ТекстДД);
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["data"]).Равно(ТекстB64); OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["data"]).Равно(ТекстB64);
КонецПроцедуры КонецПроцедуры
Процедура HTTPКлиент_УстановитьJsonТело(ПараметрыФункции) Процедура HTTPКлиент_УстановитьJsonТело(ПараметрыФункции)
URL = ПараметрыФункции["HTTP_URL"]; URL = ПараметрыФункции["HTTP_URL"];
URL = URL + "/post"; URL = URL + "/post";
СлучайныйМассив = Новый Массив; СлучайныйМассив = Новый Массив;
СлучайныйМассив.Добавить("A"); СлучайныйМассив.Добавить("A");
СлучайныйМассив.Добавить("B"); СлучайныйМассив.Добавить("B");
СлучайныйМассив.Добавить("C"); СлучайныйМассив.Добавить("C");
Данные = Новый Структура("Поле1,Поле2,Поле3", 10, "Текст", СлучайныйМассив); Данные = Новый Структура("Поле1,Поле2,Поле3", 10, "Текст", СлучайныйМассив);
Результат = OPI_ЗапросыHTTP.НовыйЗапрос() Результат = OPI_ЗапросыHTTP.НовыйЗапрос()
.Инициализировать(URL) .Инициализировать(URL)
.УстановитьJsonТело(Данные) // <--- .УстановитьJsonТело(Данные) // <---
@@ -21555,7 +21555,7 @@
Результат["origin"] = "***"; Результат["origin"] = "***";
Исключение Исключение
Сообщить("Не удалось заменить origin"); Сообщить("Не удалось заменить origin");
Попытка Попытка
Сообщить(Результат.ПолучитьЛог(Истина)); Сообщить(Результат.ПолучитьЛог(Истина));
Исключение Исключение
@@ -21565,25 +21565,25 @@
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "УстановитьСтроковоеТело", "HTTPКлиент"); OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "УстановитьСтроковоеТело", "HTTPКлиент");
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["headers"]["Content-Type"]).Равно("application/json; charset=utf-8"); OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["headers"]["Content-Type"]).Равно("application/json; charset=utf-8");
JSONРезультат = Результат["json"]; JSONРезультат = Результат["json"];
JSONОригинал = Данные; JSONОригинал = Данные;
OPI_ПолучениеДанныхТестов.ОжидаетЧто(JSONРезультат["Поле1"]).Равно(JSONОригинал["Поле1"]); OPI_ПолучениеДанныхТестов.ОжидаетЧто(JSONРезультат["Поле1"]).Равно(JSONОригинал["Поле1"]);
OPI_ПолучениеДанныхТестов.ОжидаетЧто(JSONРезультат["Поле2"]).Равно(JSONОригинал["Поле2"]); OPI_ПолучениеДанныхТестов.ОжидаетЧто(JSONРезультат["Поле2"]).Равно(JSONОригинал["Поле2"]);
OPI_ПолучениеДанныхТестов.ОжидаетЧто(JSONРезультат["Поле3"][0]).Равно(JSONОригинал["Поле3"][0]); OPI_ПолучениеДанныхТестов.ОжидаетЧто(JSONРезультат["Поле3"][0]).Равно(JSONОригинал["Поле3"][0]);
OPI_ПолучениеДанныхТестов.ОжидаетЧто(JSONРезультат["Поле3"][1]).Равно(JSONОригинал["Поле3"][1]); OPI_ПолучениеДанныхТестов.ОжидаетЧто(JSONРезультат["Поле3"][1]).Равно(JSONОригинал["Поле3"][1]);
OPI_ПолучениеДанныхТестов.ОжидаетЧто(JSONРезультат["Поле3"][2]).Равно(JSONОригинал["Поле3"][2]); OPI_ПолучениеДанныхТестов.ОжидаетЧто(JSONРезультат["Поле3"][2]).Равно(JSONОригинал["Поле3"][2]);
КонецПроцедуры КонецПроцедуры
Процедура HTTPКлиент_УстановитьFormТело(ПараметрыФункции) Процедура HTTPКлиент_УстановитьFormТело(ПараметрыФункции)
URL = ПараметрыФункции["HTTP_URL"]; URL = ПараметрыФункции["HTTP_URL"];
URL = URL + "/post"; URL = URL + "/post";
Данные = Новый Структура("Поле1,Поле2", "10", "Текст"); Данные = Новый Структура("Поле1,Поле2", "10", "Текст");
Результат = OPI_ЗапросыHTTP.НовыйЗапрос() Результат = OPI_ЗапросыHTTP.НовыйЗапрос()
.Инициализировать(URL) .Инициализировать(URL)
.УстановитьFormТело(Данные) // <--- .УстановитьFormТело(Данные) // <---
@@ -21596,7 +21596,7 @@
Результат["origin"] = "***"; Результат["origin"] = "***";
Исключение Исключение
Сообщить("Не удалось заменить origin"); Сообщить("Не удалось заменить origin");
Попытка Попытка
Сообщить(Результат.ПолучитьЛог(Истина)); Сообщить(Результат.ПолучитьЛог(Истина));
Исключение Исключение
@@ -21609,7 +21609,7 @@
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["form"]["Поле1"]).Равно(Данные["Поле1"]); OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["form"]["Поле1"]).Равно(Данные["Поле1"]);
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["form"]["Поле2"]).Равно(Данные["Поле2"]); OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["form"]["Поле2"]).Равно(Данные["Поле2"]);
КонецПроцедуры КонецПроцедуры
Процедура HTTPКлиент_НачатьЗаписьТелаMultipart(ПараметрыФункции) Процедура HTTPКлиент_НачатьЗаписьТелаMultipart(ПараметрыФункции)
@@ -21618,7 +21618,7 @@
URL = URL + "/post"; URL = URL + "/post";
Картинка = ПараметрыФункции["Picture"]; // URL, Путь или Двоичные данные Картинка = ПараметрыФункции["Picture"]; // URL, Путь или Двоичные данные
Результат = OPI_ЗапросыHTTP.НовыйЗапрос() Результат = OPI_ЗапросыHTTP.НовыйЗапрос()
.Инициализировать(URL) .Инициализировать(URL)
.НачатьЗаписьТелаMultipart() // <--- .НачатьЗаписьТелаMultipart() // <---
@@ -21631,12 +21631,12 @@
// END // END
Попытка Попытка
Результат["origin"] = "***"; Результат["origin"] = "***";
ФайлОтвета = Результат["files"]["file1"]; ФайлОтвета = Результат["files"]["file1"];
Результат["files"]["file1"] = "..."; Результат["files"]["file1"] = "...";
Исключение Исключение
Сообщить("Не удалось заменить origin"); Сообщить("Не удалось заменить origin");
Попытка Попытка
Сообщить(Результат.ПолучитьЛог(Истина)); Сообщить(Результат.ПолучитьЛог(Истина));
Исключение Исключение
@@ -21646,14 +21646,14 @@
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "НачатьЗаписьТелаMultipart", "HTTPКлиент"); OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "НачатьЗаписьТелаMultipart", "HTTPКлиент");
OPI_ПолучениеДанныхТестов.ОжидаетЧто(СтрНачинаетсяС(Результат["headers"]["Content-Type"], "multipart/")).Равно(Истина); OPI_ПолучениеДанныхТестов.ОжидаетЧто(СтрНачинаетсяС(Результат["headers"]["Content-Type"], "multipart/")).Равно(Истина);
OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(Картинка); OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(Картинка);
ТекстB64 = "data:image/png;base64," + Base64Строка(Картинка); ТекстB64 = "data:image/png;base64," + Base64Строка(Картинка);
ТекстB64 = СтрЗаменить(ТекстB64, Символы.ВК + Символы.ПС, ""); ТекстB64 = СтрЗаменить(ТекстB64, Символы.ВК + Символы.ПС, "");
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["form"]["Поле1"]).Равно("Текст"); OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["form"]["Поле1"]).Равно("Текст");
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["form"]["Поле2"]).Равно("10"); OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["form"]["Поле2"]).Равно("10");
OPI_ПолучениеДанныхТестов.ОжидаетЧто(ФайлОтвета).Равно(ТекстB64); OPI_ПолучениеДанныхТестов.ОжидаетЧто(ФайлОтвета).Равно(ТекстB64);
КонецПроцедуры КонецПроцедуры
@@ -21663,10 +21663,10 @@
URL = URL + "/post"; URL = URL + "/post";
Картинка = ПараметрыФункции["Picture"]; // URL, Путь или Двоичные данные Картинка = ПараметрыФункции["Picture"]; // URL, Путь или Двоичные данные
Результат = OPI_ЗапросыHTTP.НовыйЗапрос() Результат = OPI_ЗапросыHTTP.НовыйЗапрос()
.Инициализировать(URL) .Инициализировать(URL)
.НачатьЗаписьТелаMultipart() .НачатьЗаписьТелаMultipart()
.ДобавитьФайлMultipartFormData("file1", "pic.png", Картинка, "image/png") // <--- .ДобавитьФайлMultipartFormData("file1", "pic.png", Картинка, "image/png") // <---
.ДобавитьПолеMultipartFormData("Поле1", "Текст") .ДобавитьПолеMultipartFormData("Поле1", "Текст")
.ДобавитьПолеMultipartFormData("Поле2", "10") .ДобавитьПолеMultipartFormData("Поле2", "10")
@@ -21676,12 +21676,12 @@
// END // END
Попытка Попытка
Результат["origin"] = "***"; Результат["origin"] = "***";
ФайлОтвета = Результат["files"]["file1"]; ФайлОтвета = Результат["files"]["file1"];
Результат["files"]["file1"] = "..."; Результат["files"]["file1"] = "...";
Исключение Исключение
Сообщить("Не удалось заменить origin"); Сообщить("Не удалось заменить origin");
Попытка Попытка
Сообщить(Результат.ПолучитьЛог(Истина)); Сообщить(Результат.ПолучитьЛог(Истина));
Исключение Исключение
@@ -21691,14 +21691,14 @@
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ДобавитьФайлMultipartFormData", "HTTPКлиент"); OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ДобавитьФайлMultipartFormData", "HTTPКлиент");
OPI_ПолучениеДанныхТестов.ОжидаетЧто(СтрНачинаетсяС(Результат["headers"]["Content-Type"], "multipart/")).Равно(Истина); OPI_ПолучениеДанныхТестов.ОжидаетЧто(СтрНачинаетсяС(Результат["headers"]["Content-Type"], "multipart/")).Равно(Истина);
OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(Картинка); OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(Картинка);
ТекстB64 = "data:image/png;base64," + Base64Строка(Картинка); ТекстB64 = "data:image/png;base64," + Base64Строка(Картинка);
ТекстB64 = СтрЗаменить(ТекстB64, Символы.ВК + Символы.ПС, ""); ТекстB64 = СтрЗаменить(ТекстB64, Символы.ВК + Символы.ПС, "");
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["form"]["Поле1"]).Равно("Текст"); OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["form"]["Поле1"]).Равно("Текст");
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["form"]["Поле2"]).Равно("10"); OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["form"]["Поле2"]).Равно("10");
OPI_ПолучениеДанныхТестов.ОжидаетЧто(ФайлОтвета).Равно(ТекстB64); OPI_ПолучениеДанныхТестов.ОжидаетЧто(ФайлОтвета).Равно(ТекстB64);
КонецПроцедуры КонецПроцедуры
@@ -21708,11 +21708,11 @@
URL = URL + "/post"; URL = URL + "/post";
Картинка = ПараметрыФункции["Picture"]; // URL, Путь или Двоичные данные Картинка = ПараметрыФункции["Picture"]; // URL, Путь или Двоичные данные
Результат = OPI_ЗапросыHTTP.НовыйЗапрос() Результат = OPI_ЗапросыHTTP.НовыйЗапрос()
.Инициализировать(URL) .Инициализировать(URL)
.НачатьЗаписьТелаMultipart() .НачатьЗаписьТелаMultipart()
.ДобавитьФайлMultipartFormData("file1", "pic.png", Картинка, "image/png") .ДобавитьФайлMultipartFormData("file1", "pic.png", Картинка, "image/png")
.ДобавитьПолеMultipartFormData("Поле1", "Текст") // <--- .ДобавитьПолеMultipartFormData("Поле1", "Текст") // <---
.ДобавитьПолеMultipartFormData("Поле2", "10") // <--- .ДобавитьПолеMultipartFormData("Поле2", "10") // <---
.ОбработатьЗапрос("POST") .ОбработатьЗапрос("POST")
@@ -21721,12 +21721,12 @@
// END // END
Попытка Попытка
Результат["origin"] = "***"; Результат["origin"] = "***";
ФайлОтвета = Результат["files"]["file1"]; ФайлОтвета = Результат["files"]["file1"];
Результат["files"]["file1"] = "..."; Результат["files"]["file1"] = "...";
Исключение Исключение
Сообщить("Не удалось заменить origin"); Сообщить("Не удалось заменить origin");
Попытка Попытка
Сообщить(Результат.ПолучитьЛог(Истина)); Сообщить(Результат.ПолучитьЛог(Истина));
Исключение Исключение
@@ -21736,14 +21736,14 @@
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ДобавитьПолеMultipartFormData", "HTTPКлиент"); OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ДобавитьПолеMultipartFormData", "HTTPКлиент");
OPI_ПолучениеДанныхТестов.ОжидаетЧто(СтрНачинаетсяС(Результат["headers"]["Content-Type"], "multipart/")).Равно(Истина); OPI_ПолучениеДанныхТестов.ОжидаетЧто(СтрНачинаетсяС(Результат["headers"]["Content-Type"], "multipart/")).Равно(Истина);
OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(Картинка); OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(Картинка);
ТекстB64 = "data:image/png;base64," + Base64Строка(Картинка); ТекстB64 = "data:image/png;base64," + Base64Строка(Картинка);
ТекстB64 = СтрЗаменить(ТекстB64, Символы.ВК + Символы.ПС, ""); ТекстB64 = СтрЗаменить(ТекстB64, Символы.ВК + Символы.ПС, "");
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["form"]["Поле1"]).Равно("Текст"); OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["form"]["Поле1"]).Равно("Текст");
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["form"]["Поле2"]).Равно("10"); OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["form"]["Поле2"]).Равно("10");
OPI_ПолучениеДанныхТестов.ОжидаетЧто(ФайлОтвета).Равно(ТекстB64); OPI_ПолучениеДанныхТестов.ОжидаетЧто(ФайлОтвета).Равно(ТекстB64);
КонецПроцедуры КонецПроцедуры

View File

@@ -1,4 +1,4 @@
// OneScript: ./OInt/tools/Modules/internal/Classes/OPI_HTTPКлиент.os // OneScript: ./OInt/tools/Modules/internal/Classes/OPI_HTTPКлиент.os
// MIT License // MIT License
@@ -297,16 +297,16 @@
#Область Настройки #Область Настройки
Функция ИспользоватьКодировку(Знач Кодировка) Экспорт Функция ИспользоватьКодировку(Знач Кодировка) Экспорт
Попытка Попытка
Если ОстановитьРаботу() Тогда Возврат ЭтотОбъект КонецЕсли; Если ОстановитьРаботу() Тогда Возврат ЭтотОбъект КонецЕсли;
ДобавитьЛог("ИспользоватьКодировку: Установка значения"); ДобавитьЛог("ИспользоватьКодировку: Установка значения");
OPI_ПреобразованиеТипов.ПолучитьСтроку(Кодировка); OPI_ПреобразованиеТипов.ПолучитьСтроку(Кодировка);
УстановитьНастройку("КодировкаТелаЗапроса", Кодировка); УстановитьНастройку("КодировкаТелаЗапроса", Кодировка);
Возврат ЭтотОбъект; Возврат ЭтотОбъект;
Исключение Исключение
@@ -316,22 +316,22 @@
КонецФункции КонецФункции
Функция ИспользоватьСжатиеGzip(Знач Флаг) Экспорт Функция ИспользоватьСжатиеGzip(Знач Флаг) Экспорт
Попытка Попытка
Если ОстановитьРаботу() Тогда Возврат ЭтотОбъект КонецЕсли; Если ОстановитьРаботу() Тогда Возврат ЭтотОбъект КонецЕсли;
ДобавитьЛог("ИспользоватьСжатиеGzip: Установка значения"); ДобавитьЛог("ИспользоватьСжатиеGzip: Установка значения");
OPI_ПреобразованиеТипов.ПолучитьБулево(Флаг); OPI_ПреобразованиеТипов.ПолучитьБулево(Флаг);
УстановитьНастройку("gzip", Флаг); УстановитьНастройку("gzip", Флаг);
Возврат ЭтотОбъект; Возврат ЭтотОбъект;
Исключение Исключение
Возврат Ошибка(ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); Возврат Ошибка(ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
КонецПопытки; КонецПопытки;
КонецФункции КонецФункции
#КонецОбласти #КонецОбласти
@@ -408,11 +408,11 @@
ДобавитьЛог("УстановитьСтроковоеТело: Нет данных, пропуск"); ДобавитьЛог("УстановитьСтроковоеТело: Нет данных, пропуск");
Возврат ЭтотОбъект; Возврат ЭтотОбъект;
КонецЕсли; КонецЕсли;
Кодировка = ПолучитьНастройку("КодировкаТелаЗапроса"); Кодировка = ПолучитьНастройку("КодировкаТелаЗапроса");
OPI_ПреобразованиеТипов.ПолучитьСтроку(Кодировка); OPI_ПреобразованиеТипов.ПолучитьСтроку(Кодировка);
Если Не ЗапросТипУстановленВручную Тогда Если Не ЗапросТипУстановленВручную Тогда
ЗапросТипДанных = СтрШаблон("text/plain; charset=%1", Кодировка); ЗапросТипДанных = СтрШаблон("text/plain; charset=%1", Кодировка);
КонецЕсли; КонецЕсли;
@@ -1156,7 +1156,7 @@
Функция УстановитьТелоИзСтроки(Знач Значение, Знач ЗаписатьBOM = Ложь) Функция УстановитьТелоИзСтроки(Знач Значение, Знач ЗаписатьBOM = Ложь)
Кодировка = ПолучитьНастройку("КодировкаТелаЗапроса"); Кодировка = ПолучитьНастройку("КодировкаТелаЗапроса");
OPI_ПреобразованиеТипов.ПолучитьСтроку(Значение); OPI_ПреобразованиеТипов.ПолучитьСтроку(Значение);
OPI_ПреобразованиеТипов.ПолучитьБулево(ЗаписатьBOM); OPI_ПреобразованиеТипов.ПолучитьБулево(ЗаписатьBOM);
@@ -1469,21 +1469,21 @@
Функция ПолучитьТелоОтвета() Функция ПолучитьТелоОтвета()
НужнаРаспаковка = Ложь; НужнаРаспаковка = Ложь;
Для Каждого ЗаголовокОтвета Из Ответ.Заголовки Цикл Для Каждого ЗаголовокОтвета Из Ответ.Заголовки Цикл
КлючЗаголовка = ЗаголовокОтвета.Ключ; КлючЗаголовка = ЗаголовокОтвета.Ключ;
ЗначениеЗаголовка = ЗаголовокОтвета.Значение; ЗначениеЗаголовка = ЗаголовокОтвета.Значение;
Если нРег(КлючЗаголовка) = "content-encoding" Тогда Если нРег(КлючЗаголовка) = "content-encoding" Тогда
Если нРег(ЗначениеЗаголовка) = "gzip" Тогда Если нРег(ЗначениеЗаголовка) = "gzip" Тогда
НужнаРаспаковка = Истина; НужнаРаспаковка = Истина;
Прервать; Прервать;
КонецЕсли; КонецЕсли;
КонецЕсли; КонецЕсли;
КонецЦикла; КонецЦикла;
Если НужнаРаспаковка Тогда Если НужнаРаспаковка Тогда
Данные = РаспаковатьОтвет(Ответ); Данные = РаспаковатьОтвет(Ответ);
@@ -2177,7 +2177,7 @@
КонецФункции КонецФункции
Процедура УстановитьНастройку(Знач КлючНастройки, Знач Значение) Процедура УстановитьНастройку(Знач КлючНастройки, Знач Значение)
Настройки[КлючНастройки] = Значение; Настройки[КлючНастройки] = Значение;
КонецПроцедуры КонецПроцедуры
Процедура УстановитьСтандартныеНастройки() Процедура УстановитьСтандартныеНастройки()