You've already forked OpenIntegrations
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:
4
docs/en/data/HTTPClient/AddMultipartFormDataField.json
vendored
Normal file
4
docs/en/data/HTTPClient/AddMultipartFormDataField.json
vendored
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
{
|
||||||
|
"URL": "https://httpbin.org",
|
||||||
|
"Image": "https://api.athenaeum.digital/test_data/picture.jpg"
|
||||||
|
}
|
||||||
4
docs/en/data/HTTPClient/AddMultipartFormDataFile.json
vendored
Normal file
4
docs/en/data/HTTPClient/AddMultipartFormDataFile.json
vendored
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
{
|
||||||
|
"URL": "https://httpbin.org",
|
||||||
|
"Image": "https://api.athenaeum.digital/test_data/picture.jpg"
|
||||||
|
}
|
||||||
3
docs/en/data/HTTPClient/SetFormBody.json
vendored
Normal file
3
docs/en/data/HTTPClient/SetFormBody.json
vendored
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
{
|
||||||
|
"URL": "https://httpbin.org"
|
||||||
|
}
|
||||||
3
docs/en/data/HTTPClient/SetJsonBody.json
vendored
Normal file
3
docs/en/data/HTTPClient/SetJsonBody.json
vendored
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
{
|
||||||
|
"URL": "https://httpbin.org"
|
||||||
|
}
|
||||||
3
docs/en/data/HTTPClient/SetStringBody.json
vendored
Normal file
3
docs/en/data/HTTPClient/SetStringBody.json
vendored
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
{
|
||||||
|
"URL": "https://httpbin.org"
|
||||||
|
}
|
||||||
4
docs/en/data/HTTPClient/StartMultipartBody.json
vendored
Normal file
4
docs/en/data/HTTPClient/StartMultipartBody.json
vendored
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
{
|
||||||
|
"URL": "https://httpbin.org",
|
||||||
|
"Image": "https://api.athenaeum.digital/test_data/picture.jpg"
|
||||||
|
}
|
||||||
13
docs/en/examples/HTTPClient/AddMultipartFormDataField.txt
vendored
Normal file
13
docs/en/examples/HTTPClient/AddMultipartFormDataField.txt
vendored
Normal 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();
|
||||||
13
docs/en/examples/HTTPClient/AddMultipartFormDataFile.txt
vendored
Normal file
13
docs/en/examples/HTTPClient/AddMultipartFormDataFile.txt
vendored
Normal 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();
|
||||||
10
docs/en/examples/HTTPClient/SetFormBody.txt
vendored
Normal file
10
docs/en/examples/HTTPClient/SetFormBody.txt
vendored
Normal 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();
|
||||||
15
docs/en/examples/HTTPClient/SetJsonBody.txt
vendored
Normal file
15
docs/en/examples/HTTPClient/SetJsonBody.txt
vendored
Normal 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();
|
||||||
12
docs/en/examples/HTTPClient/SetStringBody.txt
vendored
Normal file
12
docs/en/examples/HTTPClient/SetStringBody.txt
vendored
Normal 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();
|
||||||
13
docs/en/examples/HTTPClient/StartMultipartBody.txt
vendored
Normal file
13
docs/en/examples/HTTPClient/StartMultipartBody.txt
vendored
Normal 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();
|
||||||
4
docs/ru/data/HTTPКлиент/ДобавитьПолеMultipartFormData.json
vendored
Normal file
4
docs/ru/data/HTTPКлиент/ДобавитьПолеMultipartFormData.json
vendored
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
{
|
||||||
|
"URL": "https://httpbin.org",
|
||||||
|
"Картинка": "https://api.athenaeum.digital/test_data/picture.jpg"
|
||||||
|
}
|
||||||
4
docs/ru/data/HTTPКлиент/ДобавитьФайлMultipartFormData.json
vendored
Normal file
4
docs/ru/data/HTTPКлиент/ДобавитьФайлMultipartFormData.json
vendored
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
{
|
||||||
|
"URL": "https://httpbin.org",
|
||||||
|
"Картинка": "https://api.athenaeum.digital/test_data/picture.jpg"
|
||||||
|
}
|
||||||
4
docs/ru/data/HTTPКлиент/НачатьЗаписьТелаMultipart.json
vendored
Normal file
4
docs/ru/data/HTTPКлиент/НачатьЗаписьТелаMultipart.json
vendored
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
{
|
||||||
|
"URL": "https://httpbin.org",
|
||||||
|
"Картинка": "https://api.athenaeum.digital/test_data/picture.jpg"
|
||||||
|
}
|
||||||
3
docs/ru/data/HTTPКлиент/УстановитьFormТело.json
vendored
Normal file
3
docs/ru/data/HTTPКлиент/УстановитьFormТело.json
vendored
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
{
|
||||||
|
"URL": "https://httpbin.org"
|
||||||
|
}
|
||||||
3
docs/ru/data/HTTPКлиент/УстановитьJsonТело.json
vendored
Normal file
3
docs/ru/data/HTTPКлиент/УстановитьJsonТело.json
vendored
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
{
|
||||||
|
"URL": "https://httpbin.org"
|
||||||
|
}
|
||||||
3
docs/ru/data/HTTPКлиент/УстановитьСтроковоеТело.json
vendored
Normal file
3
docs/ru/data/HTTPКлиент/УстановитьСтроковоеТело.json
vendored
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
{
|
||||||
|
"URL": "https://httpbin.org"
|
||||||
|
}
|
||||||
13
docs/ru/examples/HTTPКлиент/ДобавитьПолеMultipartFormData.txt
vendored
Normal file
13
docs/ru/examples/HTTPКлиент/ДобавитьПолеMultipartFormData.txt
vendored
Normal 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Коллекцию();
|
||||||
13
docs/ru/examples/HTTPКлиент/ДобавитьФайлMultipartFormData.txt
vendored
Normal file
13
docs/ru/examples/HTTPКлиент/ДобавитьФайлMultipartFormData.txt
vendored
Normal 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Коллекцию();
|
||||||
13
docs/ru/examples/HTTPКлиент/НачатьЗаписьТелаMultipart.txt
vendored
Normal file
13
docs/ru/examples/HTTPКлиент/НачатьЗаписьТелаMultipart.txt
vendored
Normal 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Коллекцию();
|
||||||
10
docs/ru/examples/HTTPКлиент/УстановитьFormТело.txt
vendored
Normal file
10
docs/ru/examples/HTTPКлиент/УстановитьFormТело.txt
vendored
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
URL = "https://httpbin.org";
|
||||||
|
URL = URL + "/post";
|
||||||
|
|
||||||
|
Данные = Новый Структура("Поле1,Поле2", "10", "Текст");
|
||||||
|
|
||||||
|
Результат = OPI_ЗапросыHTTP.НовыйЗапрос()
|
||||||
|
.Инициализировать(URL)
|
||||||
|
.УстановитьFormТело(Данные) // <---
|
||||||
|
.ОбработатьЗапрос("POST")
|
||||||
|
.ВернутьОтветКакJSONКоллекцию();
|
||||||
15
docs/ru/examples/HTTPКлиент/УстановитьJsonТело.txt
vendored
Normal file
15
docs/ru/examples/HTTPКлиент/УстановитьJsonТело.txt
vendored
Normal 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Коллекцию();
|
||||||
12
docs/ru/examples/HTTPКлиент/УстановитьСтроковоеТело.txt
vendored
Normal file
12
docs/ru/examples/HTTPКлиент/УстановитьСтроковоеТело.txt
vendored
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
URL = "https://httpbin.org";
|
||||||
|
URL = URL + "/post";
|
||||||
|
|
||||||
|
Текст = "Привет мир!";
|
||||||
|
Кодировка = "Windows-1251";
|
||||||
|
|
||||||
|
Результат = OPI_ЗапросыHTTP.НовыйЗапрос()
|
||||||
|
.Инициализировать(URL)
|
||||||
|
.ИспользоватьКодировку(Кодировка)
|
||||||
|
.УстановитьСтроковоеТело(Текст) // <---
|
||||||
|
.ОбработатьЗапрос("POST")
|
||||||
|
.ВернутьОтветКакJSONКоллекцию();
|
||||||
14534
service/dictionaries/en.json
vendored
14534
service/dictionaries/en.json
vendored
File diff suppressed because it is too large
Load Diff
295
src/en/OInt/tests/Modules/internal/OPI_Tests.os
vendored
295
src/en/OInt/tests/Modules/internal/OPI_Tests.os
vendored
@@ -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¶m2=10";
|
Address = "/get?param1=text¶m2=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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|
||||||
|
|||||||
295
src/en/OPI/src/CommonModules/OPI_Tests/Module.bsl
vendored
295
src/en/OPI/src/CommonModules/OPI_Tests/Module.bsl
vendored
@@ -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¶m2=10";
|
Address = "/get?param1=text¶m2=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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|
||||||
|
|||||||
120
src/ru/OInt/tests/Modules/internal/OPI_Тесты.os
vendored
120
src/ru/OInt/tests/Modules/internal/OPI_Тесты.os
vendored
@@ -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);
|
||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
|
|||||||
@@ -2463,9 +2463,9 @@
|
|||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
Функция ПолучитьОбщийМодуль(Знач Имя)
|
Функция ПолучитьОбщийМодуль(Знач Имя)
|
||||||
|
|
||||||
Модуль = Вычислить(Имя);
|
Модуль = Вычислить(Имя);
|
||||||
|
|
||||||
Возврат Модуль;
|
Возврат Модуль;
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
|
|||||||
@@ -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 @@
|
|||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
Процедура УстановитьНастройку(Знач КлючНастройки, Знач Значение)
|
Процедура УстановитьНастройку(Знач КлючНастройки, Знач Значение)
|
||||||
Настройки[КлючНастройки] = Значение;
|
Настройки[КлючНастройки] = Значение;
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
Процедура УстановитьСтандартныеНастройки()
|
Процедура УстановитьСтандартныеНастройки()
|
||||||
|
|||||||
122
src/ru/OPI/src/CommonModules/OPI_Тесты/Module.bsl
vendored
122
src/ru/OPI/src/CommonModules/OPI_Тесты/Module.bsl
vendored
@@ -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);
|
||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
|
|||||||
@@ -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 @@
|
|||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
Процедура УстановитьНастройку(Знач КлючНастройки, Знач Значение)
|
Процедура УстановитьНастройку(Знач КлючНастройки, Знач Значение)
|
||||||
Настройки[КлючНастройки] = Значение;
|
Настройки[КлючНастройки] = Значение;
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
Процедура УстановитьСтандартныеНастройки()
|
Процедура УстановитьСтандартныеНастройки()
|
||||||
|
|||||||
Reference in New Issue
Block a user