用于在用户的客户端程序上使用HTTP的类
页面进行中。 |
硬件支持包*Engee*为用户提供了作为HTTP客户端通过REST API与外部服务通信的能力。
#
Main.EngeeDeviceManager.Devices.HTTP.close_session
— Method
function close_session(device::HttpType)::Nothing
取消先前创建的HTTP客户端的初始化。
参数
device::HttpType
:HTTP的对象。Http()类型。
#
Main.EngeeDeviceManager.Devices.HTTP.delete
— Function
function delete(device::HttpType, endpoint::String, request_data::HTTPRequestData, headers::Dict{String, String}=Dict(), timeout::Union{Int64, Nothing}=nothing)::HTTPResponse
DELETE是REST API请求。
参数
-
device::HttpType
:HTTP的对象。Http()类型。 -
endpoint::String
:访问HTTP资源的端点。 -
request_data::HTTPRequestData
:一个HTTPRequestData对象。 HTTPRequestData有签名:Base.@kwdef struct HTTPRequestData params::Union{Dict{String, Union{Int64, Float64, String, Bool, Vector{UInt8}, Vector{Union{Int64, Float64, String, Bool}}, Dict{String, Union{Int64, Float64, String, Bool, Dict{String, Union{Int64, Float64, String, Bool}}}}}}, Nothing} = nothing data::Union{Dict{String, Union{Int64, Float64, String, Bool, Vector{UInt8}, Vector{Union{Int64, Float64, String, Bool}}, Dict{String, Union{Int64, Float64, String, Bool, Dict{String, Union{Int64, Float64, String, Bool}}}}}}, Nothing} = nothing json_data::Union{Dict{String, Union{Int64, Float64, String, Bool, Vector{UInt8}, Vector{Union{Int64, Float64, String, Bool}}, Dict{String, Union{Int64, Float64, String, Bool, Dict{String, Union{Int64, Float64, String, Bool}}}}}}, Nothing} = nothing files::Union{Dict{String, Union{Int64, Float64, String, Bool, Vector{UInt8}, Vector{Union{Int64, Float64, String, Bool}}, Dict{String, Union{Int64, Float64, String, Bool, Dict{String, Union{Int64, Float64, String, Bool}}}}}}, Nothing} = nothing end
Описание: Тело запроса (если включает в себя данные) и json-данные (если есть)
-
params
: параметры-
Тип: словарь или nothing (необязательный).
-
Назначение: параметры URL-строки запроса (то, что идет после ? в адресе). Пример:
{"page": 1, "limit": 20, "sort": "name"}
→?page=1&limit;=20&sort;=name
. -
Поддерживаемые типы значений:
-
Числа (целые и дробные);
-
Строки;
-
Логические значения (
true
/false
); -
Бинарные данные (байты);
-
Списки примитивных типов; Вложенные словари.
-
-
-
data
: данные-
Тип: словарь или nothing (необязательный).
-
Назначение: данные для тела запроса в формате x-www-form-urlencoded.
-
Использование: для отправки форм обычных данных (не файлов). Пример:
{"username": "john", "password": "secret"}
-
Поддерживаемые типы: такие же, как у
params
.
-
-
json_data
: JSON-данные-
Тип: словарь или nothing (необязательный).
-
Назначение: данные для тела запроса в формате JSON.
-
Использование: для REST API, где ожидается JSON. Пример:
{"user": {"name": "John", "age": 30}}
. -
Особенность: автоматически сериализуется в JSON строку.
-
Поддерживаемые типы: такие же, как у
params
.
-
-
files
: файлы-
Тип: словарь или nothing (необязательный).
-
Назначение: данные для загрузки файлов (мультипарт-запросы).
-
Использование: для отправки файлов через формы. Пример:
{"avatar": "binary_data", "document": "file_content"}
. -
Поддерживаемые типы: такие же, как у
params
, но обычно содержит бинарные данные. -
Пример создания:
julia-repl params = Dict("param1" => "value1", "param2" => "value2") request_data = HTTPRequestData(params=params, data=nothing, json_data=nothing, files=nothing)
-
-
headers
: дополнительные заголовки. Например, настройка заголовков соединения и MIME-type запросов:headers = Dict{String, String}() headers["connection"] = "keep-alive" headers["Accept"] = "application/json"
-
timeout
: таймаут на ожидание ответа в секундах. ВозвращаетHTTPResponse
(объект типа HTTPResponse). Пример:Base.@kwdef struct HTTPResponse text_content::Union{String, Nothing} = nothing bytes_content::Union{Vector{UInt8}, Nothing} = nothing elapsed::Union{HTTPTimedelta, Nothing} = nothing status_code::Union{Int64, Nothing} = nothing end
-
text_content
: HTTP-ответ в текстовом представлении; -
bytes_content
: HTTP-ответ в байтовом представлении; -
elapsed
: время, затраченное на осуществление обработки запроса; -
status_code
: статус операции HTTP-запроса.
-
#
Main.EngeeDeviceManager.Devices.HTTP.get
— Function
function get(设备::HttpType,端点::String,request_data::HTTPRequestData,headers::Dict{String,String}=Dict(),超时::Union{Int64,Nothing}=nothing)::HTTPResponse
GET-запрос REST API.
Аргументы
-
device::HttpType
: объект типа HTTP.Http(). -
endpoint::String
: конечная точка для обращения к HTTP-ресурсу. -
request_data::HTTPRequestData
: объект типа HTTPRequestData. HTTPRequestData имеет сигнатуру:Base.@kwdef struct HTTPRequestData params::Union{Dict{String, Union{Int64, Float64, String, Bool, Vector{UInt8}, Vector{Union{Int64, Float64, String, Bool}}, Dict{String, Union{Int64, Float64, String, Bool, Dict{String, Union{Int64, Float64, String, Bool}}}}}}, Nothing} = nothing data::Union{Dict{String, Union{Int64, Float64, String, Bool, Vector{UInt8}, Vector{Union{Int64, Float64, String, Bool}}, Dict{String, Union{Int64, Float64, String, Bool, Dict{String, Union{Int64, Float64, String, Bool}}}}}}, Nothing} = nothing json_data::Union{Dict{String, Union{Int64, Float64, String, Bool, Vector{UInt8}, Vector{Union{Int64, Float64, String, Bool}}, Dict{String, Union{Int64, Float64, String, Bool, Dict{String, Union{Int64, Float64, String, Bool}}}}}}, Nothing} = nothing files::Union{Dict{String, Union{Int64, Float64, String, Bool, Vector{UInt8}, Vector{Union{Int64, Float64, String, Bool}}, Dict{String, Union{Int64, Float64, String, Bool, Dict{String, Union{Int64, Float64, String, Bool}}}}}}, Nothing} = nothing end
Описание: Тело запроса (если включает в себя данные) и json-данные (если есть)
-
params
: параметры-
Тип: словарь или nothing (необязательный).
-
Назначение: параметры URL-строки запроса (то, что идет после ? в адресе). Пример:
{"page": 1, "limit": 20, "sort": "name"}
→?page=1&limit;=20&sort;=name
. -
Поддерживаемые типы значений:
-
Числа (целые и дробные);
-
Строки;
-
Логические значения (
true
/false
); -
Бинарные данные (байты);
-
Списки примитивных типов;
-
Вложенные словари.
-
-
data
: данные-
Тип: словарь или nothing (необязательный).
-
Назначение: данные для тела запроса в формате x-www-form-urlencoded.
-
Использование: для отправки форм обычных данных (не файлов). Пример:
{"username": "john", "password": "secret"}
-
Поддерживаемые типы: такие же, как у
params
.
-
-
json_data
: JSON-данные-
Тип: словарь или nothing (необязательный).
-
Назначение: данные для тела запроса в формате JSON.
-
Использование: для REST API, где ожидается JSON. Пример:
{"user": {"name": "John", "age": 30}}
. -
Особенность: автоматически сериализуется в JSON строку.
-
Поддерживаемые типы: такие же, как у
params
.
-
-
files
: файлы-
Тип: словарь или nothing (необязательный).
-
Назначение: данные для загрузки файлов (мультипарт-запросы).
-
Использование: для отправки файлов через формы. Пример:
{"avatar": "binary_data", "document": "file_content"}
. -
Поддерживаемые типы: такие же, как у
params
, но обычно содержит бинарные данные. -
Пример создания:
julia-repl params = Dict("param1" => "value1", "param2" => "value2") request_data = HTTPRequestData(params=params, data=nothing, json_data=nothing, files=nothing)
-
-
headers
: дополнительные заголовки. Например, настройка заголовков соединения и MIME-type запросов:
julia-repl headers = Dict{String, String}() headers["connection"] = "keep-alive" headers["Accept"] = "application/json"
-
timeout
: таймаут на ожидание ответа в секундах. ВозвращаетHTTPResponse
(объект типа HTTPResponse). Пример:
julia-repl Base.@kwdef struct HTTPResponse text_content::Union{String, Nothing} = nothing bytes_content::Union{Vector{UInt8}, Nothing} = nothing elapsed::Union{HTTPTimedelta, Nothing} = nothing status_code::Union{Int64, Nothing} = nothing end
- text_content
: HTTP-ответ в текстовом представлении; - bytes_content
: HTTP-ответ в байтовом представлении; - elapsed
: время, затраченное на осуществление обработки запроса; - status_code
: статус операции HTTP-запроса.
#
Main.EngeeDeviceManager.Devices.HTTP.init_session
— Function
function init_session(device::HttpType,base_url::String="",auth::Union{Tuple{String},String,Nothing}=nothing,auth_type::String="bearer",headers::Dict{String,String}=Dict(),timeout::Int64=30,verify_ssl::Bool=true)::Bool
Инициализация HTTP клиента для общения с HTTP-сервером.
参数
-
device
:HTTP的对象。Http()类型。 -
base_url
:所有请求的基本URL。 -
auth
:授权数据,可以是元组(用户名、密码),也可以是带有令牌的字符串。 -
auth_type
:认证类型(basic
,digest
,或bearer
). -
headers
:要包含在每个请求中的默认标头。 -
timeout
:默认响应超时(以秒为单位)。 -
verify_ssl
:SSL证书的验证(true
-启用,false
-禁用)。
#
Main.EngeeDeviceManager.Devices.HTTP.patch
— Function
function patch(device::HttpType,endpoint::String,request_data::HTTPRequestData,headers::Dict{String,String}=Dict(),timeout::Union{Int64,Nothing}=nothing)::HTTPResponse
PATCH-запрос REST API.
Аргументы
-
device::HttpType
: объект типа HTTP.Http(). -
endpoint::String
: конечная точка для обращения к HTTP-ресурсу. -
request_data::HTTPRequestData
: объект типа HTTPRequestData. HTTPRequestData имеет сигнатуру:Base.@kwdef struct HTTPRequestData params::Union{Dict{String, Union{Int64, Float64, String, Bool, Vector{UInt8}, Vector{Union{Int64, Float64, String, Bool}}, Dict{String, Union{Int64, Float64, String, Bool, Dict{String, Union{Int64, Float64, String, Bool}}}}}}, Nothing} = nothing data::Union{Dict{String, Union{Int64, Float64, String, Bool, Vector{UInt8}, Vector{Union{Int64, Float64, String, Bool}}, Dict{String, Union{Int64, Float64, String, Bool, Dict{String, Union{Int64, Float64, String, Bool}}}}}}, Nothing} = nothing json_data::Union{Dict{String, Union{Int64, Float64, String, Bool, Vector{UInt8}, Vector{Union{Int64, Float64, String, Bool}}, Dict{String, Union{Int64, Float64, String, Bool, Dict{String, Union{Int64, Float64, String, Bool}}}}}}, Nothing} = nothing files::Union{Dict{String, Union{Int64, Float64, String, Bool, Vector{UInt8}, Vector{Union{Int64, Float64, String, Bool}}, Dict{String, Union{Int64, Float64, String, Bool, Dict{String, Union{Int64, Float64, String, Bool}}}}}}, Nothing} = nothing end
Описание: Тело запроса (если включает в себя данные) и json-данные (если есть)
-
params
: параметры-
Тип: словарь или nothing (необязательный).
-
Назначение: параметры URL-строки запроса (то, что идет после ? в адресе). Пример:
{"page": 1, "limit": 20, "sort": "name"}
→?page=1&limit;=20&sort;=name
. -
Поддерживаемые типы значений:
-
Числа (целые и дробные);
-
Строки;
-
Логические значения (
true
/false
); -
Бинарные данные (байты);
-
Списки примитивных типов;
-
Вложенные словари.
-
-
data
: данные-
Тип: словарь или nothing (необязательный).
-
Назначение: данные для тела запроса в формате x-www-form-urlencoded.
-
Использование: для отправки форм обычных данных (не файлов). Пример:
{"username": "john", "password": "secret"}
-
Поддерживаемые типы: такие же, как у
params
.
-
-
json_data
: JSON-данные-
Тип: словарь или nothing (необязательный).
-
Назначение: данные для тела запроса в формате JSON.
-
Использование: для REST API, где ожидается JSON. Пример:
{"user": {"name": "John", "age": 30}}
. -
Особенность: автоматически сериализуется в JSON строку.
-
Поддерживаемые типы: такие же, как у
params
.
-
-
files
: файлы-
Тип: словарь или nothing (необязательный).
-
Назначение: данные для загрузки файлов (мультипарт-запросы).
-
Использование: для отправки файлов через формы. Пример:
{"avatar": "binary_data", "document": "file_content"}
. -
Поддерживаемые типы: такие же, как у
params
, но обычно содержит бинарные данные. -
Пример создания:
julia-repl params = Dict("param1" => "value1", "param2" => "value2") request_data = HTTPRequestData(params=params, data=nothing, json_data=nothing, files=nothing)
-
-
headers
: дополнительные заголовки. Например, настройка заголовков соединения и MIME-type запросов:
julia-repl headers = Dict{String, String}() headers["connection"] = "keep-alive" headers["Accept"] = "application/json"
-
timeout
: таймаут на ожидание ответа в секундах. ВозвращаетHTTPResponse
(объект типа HTTPResponse). Пример:
julia-repl Base.@kwdef struct HTTPResponse text_content::Union{String, Nothing} = nothing bytes_content::Union{Vector{UInt8}, Nothing} = nothing elapsed::Union{HTTPTimedelta, Nothing} = nothing status_code::Union{Int64, Nothing} = nothing end
- text_content
: HTTP-ответ в текстовом представлении; - bytes_content
: HTTP-ответ в байтовом представлении; - elapsed
: время, затраченное на осуществление обработки запроса; - status_code
: статус операции HTTP-запроса.
#
Main.EngeeDeviceManager.Devices.HTTP.post
— Function
function post(device::HttpType,endpoint::String,request_data::HTTPRequestData,headers::Dict{String,String}=Dict(),timeout::Union{Int64,Nothing}=nothing)::HTTPResponse
POST-запрос REST API.
参数
-
device::HttpType
:HTTP的对象。Http()类型。 -
endpoint::String
:访问HTTP资源的端点。 -
request_data::HTTPRequestData
:一个HTTPRequestData对象。 HTTPRequestData有签名: "'朱莉娅-repl 基地。@kwdef结构HTTPRequestData params::Union{Dict{String,Union{Int64,Float64,String,Bool,Vector{UInt8}, 向量{联合{Int64,Float64,字符串,Bool}, Dict{String,Union{Int64,Float64,String,Bool, Dict{String,Union{Int64,Float64,String,Bool}}}}}},Nothing}=nothing 数据::Union{Dict{String,Union{Int64,Float64,String,Bool,Vector{UInt8}, 向量{联合{Int64,Float64,字符串,Bool}, Dict{String,Union{Int64,Float64,String,Bool, Dict{String,Union{Int64,Float64,String,Bool}}}}}},Nothing}=nothing json_data::Union{Dict{String,Union{Int64,Float64,String,Bool,Vector{UInt8}, 向量{联合{Int64,Float64,字符串,Bool}, Dict{String,Union{Int64,Float64,String,Bool, Dict{String,Union{Int64,Float64,String,Bool}}}}}},Nothing}=nothing 文件:联合{字符串,联合{Int64,Float64,字符串,Bool,矢量{UInt8}, 向量{联合{Int64,Float64,字符串,Bool}, Dict{String,Union{Int64,Float64,String,Bool, Dict{String,Union{Int64,Float64,String,Bool}}}}}},Nothing}=nothing 结束`
说明:请求体(如果包含数据)和json数据(如果有的话)
-
params
:参数 -类型:字典或无(可选)。 -目的:URL查询字符串的参数(后面是什么? 地址中)。 例子::{"page": 1, "limit": 20, "sort": "name"}
→?page=1&limit;=20&sort;=name
. -支持的值类型:
-数字(整数和分数); -线路; -逻辑值(true
/false
); -二进制数据(字节); -原始类型列表; 嵌套字典。
-
data
:数据 -类型:字典或无(可选)。 -目的:x-www-form-urlencoded格式的请求正文的数据。 -用法:发送常规数据(不是文件)的形式。 例子::{"username": "john", "password": "secret"}
-支持的类型:与params
. -
json_data
:JSON数据 -类型:字典或无(可选)。 -目的:JSON格式的请求正文数据。 -用法:用于REST API,其中需要JSON。 例子::{"user": {"name": "John", "age": 30}}
. -功能:自动序列化为JSON字符串。 -支持的类型:与params
. -
files
:档案 -类型:字典或无(可选)。 -用途:上传文件的数据(多部分请求)。 -用法:通过表单发送文件。 例子::{"avatar": "binary_data", "document": "file_content"}
. -支持的类型:与params
,但通常包含二进制数据。 -创作的例子:
"朱莉娅-repl params=Dict("param1"=>"value1","param2"=>"value2") requestdata=HTTPRequestData(params=params,data=nothing,jsondata=nothing,files=nothing) `
-
headers
:附加标题。 例如,设置连接标头和MIME类型请求:
"朱莉娅-repl 标题=Dict{字符串,字符串}() 标题["连接"]="保持活力" 标头["接受"]="应用程序/json" `
-
timeout
:等待响应的超时(以秒为单位)。 申报表HTTPResponse
(一个HttpResponse对象)。 例子::
"'朱莉娅-repl 基地。@kwdef结构HTTPResponse textcontent::Union{String,Nothing}=nothing Bytescontent::Union{Vector{UInt8},Nothing}=nothing 经过::Union{HTTPTimedelta,Nothing}=nothing status*code::Union{Int64,Nothing}=nothing 结束 `
-text*content
:文本表示中的HTTP响应; -bytes*content
:字节表示的HTTP响应; -elapsed
:处理请求所花费的时间; -status*code
:HTTP请求操作的状态。
#
Main.EngeeDeviceManager.Devices.HTTP.put
— Function
function put(device::HttpType,endpoint::String,request_data::HTTPRequestData,headers::Dict{String,String}=Dict(),timeout::Union{Int64,Nothing}=nothing)::HTTPResponse
PUT-запрос REST API.
Аргументы
-
device::HttpType
: объект типа HTTP.Http(). -
endpoint::String
: конечная точка для обращения к HTTP-ресурсу. -
request_data::HTTPRequestData
: объект типа HTTPRequestData. HTTPRequestData имеет сигнатуру:Base.@kwdef struct HTTPRequestData params::Union{Dict{String, Union{Int64, Float64, String, Bool, Vector{UInt8}, Vector{Union{Int64, Float64, String, Bool}}, Dict{String, Union{Int64, Float64, String, Bool, Dict{String, Union{Int64, Float64, String, Bool}}}}}}, Nothing} = nothing data::Union{Dict{String, Union{Int64, Float64, String, Bool, Vector{UInt8}, Vector{Union{Int64, Float64, String, Bool}}, Dict{String, Union{Int64, Float64, String, Bool, Dict{String, Union{Int64, Float64, String, Bool}}}}}}, Nothing} = nothing json_data::Union{Dict{String, Union{Int64, Float64, String, Bool, Vector{UInt8}, Vector{Union{Int64, Float64, String, Bool}}, Dict{String, Union{Int64, Float64, String, Bool, Dict{String, Union{Int64, Float64, String, Bool}}}}}}, Nothing} = nothing files::Union{Dict{String, Union{Int64, Float64, String, Bool, Vector{UInt8}, Vector{Union{Int64, Float64, String, Bool}}, Dict{String, Union{Int64, Float64, String, Bool, Dict{String, Union{Int64, Float64, String, Bool}}}}}}, Nothing} = nothing end
Описание: Тело запроса (если включает в себя данные) и json-данные (если есть)
-
params
: параметры-
Тип: словарь или nothing (необязательный).
-
Назначение: параметры URL-строки запроса (то, что идет после ? в адресе). Пример:
{"page": 1, "limit": 20, "sort": "name"}
→?page=1&limit;=20&sort;=name
. -
Поддерживаемые типы значений:
-
Числа (целые и дробные);
-
Строки;
-
Логические значения (
true
/false
); -
Бинарные данные (байты);
-
Списки примитивных типов;
-
Вложенные словари.
-
-
data
: данные-
Тип: словарь или nothing (необязательный).
-
Назначение: данные для тела запроса в формате x-www-form-urlencoded.
-
Использование: для отправки форм обычных данных (не файлов). Пример:
{"username": "john", "password": "secret"}
-
Поддерживаемые типы: такие же, как у
params
.
-
-
json_data
: JSON-данные-
Тип: словарь или nothing (необязательный).
-
Назначение: данные для тела запроса в формате JSON.
-
Использование: для REST API, где ожидается JSON. Пример:
{"user": {"name": "John", "age": 30}}
. -
Особенность: автоматически сериализуется в JSON строку.
-
Поддерживаемые типы: такие же, как у
params
.
-
-
files
: файлы-
Тип: словарь или nothing (необязательный).
-
Назначение: данные для загрузки файлов (мультипарт-запросы).
-
Использование: для отправки файлов через формы. Пример:
{"avatar": "binary_data", "document": "file_content"}
. -
Поддерживаемые типы: такие же, как у
params
, но обычно содержит бинарные данные. -
Пример создания:
julia-repl params = Dict("param1" => "value1", "param2" => "value2") request_data = HTTPRequestData(params=params, data=nothing, json_data=nothing, files=nothing)
-
-
headers
: дополнительные заголовки. Например, настройка заголовков соединения и MIME-type запросов:
julia-repl headers = Dict{String, String}() headers["connection"] = "keep-alive" headers["Accept"] = "application/json"
-
timeout
: таймаут на ожидание ответа в секундах. ВозвращаетHTTPResponse
(объект типа HTTPResponse). Пример:
julia-repl Base.@kwdef struct HTTPResponse text_content::Union{String, Nothing} = nothing bytes_content::Union{Vector{UInt8}, Nothing} = nothing elapsed::Union{HTTPTimedelta, Nothing} = nothing status_code::Union{Int64, Nothing} = nothing end
- text_content
: HTTP-ответ в текстовом представлении; - bytes_content
: HTTP-ответ в байтовом представлении; - elapsed
: время, затраченное на осуществление обработки запроса; - status_code
: статус операции HTTP-запроса.
#
Main.EngeeDeviceManager.Devices.HTTP.remove_header
— Method
function remove_header(device::HttpType,key::String)::Nothing
Функция для удаления указанного заголовков запроса из существующих заголовков.
参数
-
device::HttpType
:HTTP的对象。Http()类型。 -
key::String
:要设置的请求头的键。
#
Main.EngeeDeviceManager.Devices.HTTP.set_header
— Method
function set_header(device::HttpType,key::String,value::String)::Nothing
用于将请求标头设置为已存在标头的函数。
参数
-
device::HttpType
:HTTP的对象。Http()类型。 -
key::String
:要设置的请求头的键。