|
|
|
|
|
using Flurl.Http;
|
|
|
|
|
|
using Newtonsoft.Json;
|
|
|
|
|
|
using Sln.Wcs.HikRoBotSdk.Config;
|
|
|
|
|
|
using Sln.Wcs.HikRoBotSdk.Dto.CancelTask;
|
|
|
|
|
|
using Sln.Wcs.HikRoBotSdk.Dto.ContinueTask;
|
|
|
|
|
|
using Sln.Wcs.HikRoBotSdk.Dto.GbCancelTask;
|
|
|
|
|
|
using Sln.Wcs.HikRoBotSdk.Dto.GbContinueTask;
|
|
|
|
|
|
using Sln.Wcs.HikRoBotSdk.Dto.GbTaskSubmit;
|
|
|
|
|
|
using Sln.Wcs.HikRoBotSdk.Dto.GenAgvSchedulingTask;
|
|
|
|
|
|
using Sln.Wcs.HikRoBotSdk.Dto.TaskGroup;
|
|
|
|
|
|
using Sln.Wcs.HikRoBotSdk.Dto.TaskPriority;
|
|
|
|
|
|
using Sln.Wcs.HikRoBotSdk.Dto.ZonePause;
|
|
|
|
|
|
using Sln.Wcs.HikRoBotSdk.Dto.ZoneHoming;
|
|
|
|
|
|
using Sln.Wcs.HikRoBotSdk.Dto.ZoneBanish;
|
|
|
|
|
|
using Sln.Wcs.HikRoBotSdk.Dto.ZoneBlockade;
|
|
|
|
|
|
using Sln.Wcs.HikRoBotSdk.Dto.CarrierBind;
|
|
|
|
|
|
using Sln.Wcs.HikRoBotSdk.Dto.CarrierUnbind;
|
|
|
|
|
|
using Sln.Wcs.HikRoBotSdk.Dto.SiteBind;
|
|
|
|
|
|
using Sln.Wcs.HikRoBotSdk.Dto.CarrierLock;
|
|
|
|
|
|
using Sln.Wcs.HikRoBotSdk.Dto.SiteLock;
|
|
|
|
|
|
using Sln.Wcs.HikRoBotSdk.Dto.PreTask;
|
|
|
|
|
|
using Sln.Wcs.HikRoBotSdk.Dto.QueryTask;
|
|
|
|
|
|
using Sln.Wcs.HikRoBotSdk.Dto.QueryRobot;
|
|
|
|
|
|
using Sln.Wcs.HikRoBotSdk.Dto.QueryCarrier;
|
|
|
|
|
|
using Sln.Wcs.HikRoBotSdk.Dto.MatLabelBind;
|
|
|
|
|
|
using Sln.Wcs.HikRoBotSdk.Dto.MatLabelUnbind;
|
|
|
|
|
|
using Sln.Wcs.HikRoBotSdk.Dto.EquipmentNotify;
|
|
|
|
|
|
using System;
|
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
|
using System.Linq;
|
|
|
|
|
|
using System.Security.Authentication;
|
|
|
|
|
|
using System.Text;
|
|
|
|
|
|
using System.Threading.Tasks;
|
|
|
|
|
|
|
|
|
|
|
|
#region << 版 本 注 释 >>
|
|
|
|
|
|
/*--------------------------------------------------------------------
|
|
|
|
|
|
* 版权所有 (c) 2026 WenJY 保留所有权利。
|
|
|
|
|
|
* CLR版本:4.0.30319.42000
|
|
|
|
|
|
* 机器名称:T14-GEN3-7895
|
|
|
|
|
|
* 命名空间:Sln.Wcs.HikRoBotSdk
|
|
|
|
|
|
* 唯一标识:17e983b2-0c7e-4b27-ae05-e333d623b85d
|
|
|
|
|
|
*
|
|
|
|
|
|
* 创建者:WenJY
|
|
|
|
|
|
* 电子邮箱:
|
|
|
|
|
|
* 创建时间:2026-02-25 14:40:23
|
|
|
|
|
|
* 版本:V1.0.0
|
|
|
|
|
|
* 描述:
|
|
|
|
|
|
*
|
|
|
|
|
|
*--------------------------------------------------------------------
|
|
|
|
|
|
* 修改人:
|
|
|
|
|
|
* 时间:
|
|
|
|
|
|
* 修改说明:
|
|
|
|
|
|
*
|
|
|
|
|
|
* 版本:V1.0.0
|
|
|
|
|
|
*--------------------------------------------------------------------*/
|
|
|
|
|
|
#endregion << 版 本 注 释 >>
|
|
|
|
|
|
namespace Sln.Wcs.HikRoBotSdk
|
|
|
|
|
|
{
|
|
|
|
|
|
public class HIKRoBotSdk : IHIKRoBotSdk
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
|
|
private readonly HikRoBotConfig hikRoBotConfig;
|
|
|
|
|
|
|
|
|
|
|
|
public HIKRoBotSdk(HikRoBotConfig hikRoBotConfig)
|
|
|
|
|
|
{
|
|
|
|
|
|
this.hikRoBotConfig = hikRoBotConfig;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// GB标准-任务下发接口
|
|
|
|
|
|
///
|
|
|
|
|
|
/// 业务系统发送任务请求,物流机器人调度系统生成任务执行单并下发执行。
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="gbTaskSubmit"></param>
|
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
|
public GbTaskSubmitResultDto GbTaskSubmit(GbTaskSubmitDto gbTaskSubmit)
|
|
|
|
|
|
{
|
|
|
|
|
|
string url = $"{hikRoBotConfig.api}/task/submit";
|
|
|
|
|
|
return GenRequestHeader(url).PostJsonAsync(gbTaskSubmit).Result.GetJsonAsync<GbTaskSubmitResultDto>().Result;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// GB标准-任务继续执行接口
|
|
|
|
|
|
///
|
|
|
|
|
|
/// 一个任务包含多个步骤,每个步骤完成后,通过此接口驱动下一个步骤执行。
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="gbContinueTask"></param>
|
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
|
public GbContinueTaskResultDto GbContinueTask(GbContinueTaskDto gbContinueTask)
|
|
|
|
|
|
{
|
|
|
|
|
|
string url = $"{hikRoBotConfig.api}/task/extend/continue";
|
|
|
|
|
|
return GenRequestHeader(url).PostJsonAsync(gbContinueTask).Result.GetJsonAsync<GbContinueTaskResultDto>().Result;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// GB标准-任务取消接口
|
|
|
|
|
|
///
|
|
|
|
|
|
/// 取消指定任务,支持软取消(回库)和硬取消(直接丢弃)。
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="gbCancelTask"></param>
|
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
|
public GbCancelTaskResultDto GbCancelTask(GbCancelTaskDto gbCancelTask)
|
|
|
|
|
|
{
|
|
|
|
|
|
string url = $"{hikRoBotConfig.api}/task/cancel";
|
|
|
|
|
|
return GenRequestHeader(url).PostJsonAsync(gbCancelTask).Result.GetJsonAsync<GbCancelTaskResultDto>().Result;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 任务分组
|
|
|
|
|
|
///
|
|
|
|
|
|
/// 对多个任务进行分组,组内任务按优先级顺序执行。
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="taskGroup"></param>
|
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
|
public TaskGroupResultDto TaskGroup(TaskGroupDto taskGroup)
|
|
|
|
|
|
{
|
|
|
|
|
|
string url = $"{hikRoBotConfig.api}/task/group";
|
|
|
|
|
|
return GenRequestHeader(url).PostJsonAsync(taskGroup).Result.GetJsonAsync<TaskGroupResultDto>().Result;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 设置任务优先级
|
|
|
|
|
|
///
|
|
|
|
|
|
/// 修改指定任务的优先级。
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="taskPriority"></param>
|
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
|
public TaskPriorityResultDto SetTaskPriority(TaskPriorityDto taskPriority)
|
|
|
|
|
|
{
|
|
|
|
|
|
string url = $"{hikRoBotConfig.api}/task/priority";
|
|
|
|
|
|
return GenRequestHeader(url).PostJsonAsync(taskPriority).Result.GetJsonAsync<TaskPriorityResultDto>().Result;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 区域暂停
|
|
|
|
|
|
///
|
|
|
|
|
|
/// 暂停指定区域内的所有AGV任务。
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="zonePause"></param>
|
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
|
public ZonePauseResultDto ZonePause(ZonePauseDto zonePause)
|
|
|
|
|
|
{
|
|
|
|
|
|
string url = $"{hikRoBotConfig.api}/zone/pause";
|
|
|
|
|
|
return GenRequestHeader(url).PostJsonAsync(zonePause).Result.GetJsonAsync<ZonePauseResultDto>().Result;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 区域回库
|
|
|
|
|
|
///
|
|
|
|
|
|
/// 将指定区域内的AGV召回至充电桩/待命点。
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="zoneHoming"></param>
|
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
|
public ZoneHomingResultDto ZoneHoming(ZoneHomingDto zoneHoming)
|
|
|
|
|
|
{
|
|
|
|
|
|
string url = $"{hikRoBotConfig.api}/zone/homing";
|
|
|
|
|
|
return GenRequestHeader(url).PostJsonAsync(zoneHoming).Result.GetJsonAsync<ZoneHomingResultDto>().Result;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 区域驱赶
|
|
|
|
|
|
///
|
|
|
|
|
|
/// 将指定区域内的AGV驱赶出该区域。
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="zoneBanish"></param>
|
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
|
public ZoneBanishResultDto ZoneBanish(ZoneBanishDto zoneBanish)
|
|
|
|
|
|
{
|
|
|
|
|
|
string url = $"{hikRoBotConfig.api}/zone/banish";
|
|
|
|
|
|
return GenRequestHeader(url).PostJsonAsync(zoneBanish).Result.GetJsonAsync<ZoneBanishResultDto>().Result;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 区域封锁
|
|
|
|
|
|
///
|
|
|
|
|
|
/// 封锁指定区域,禁止AGV进入该区域。
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="zoneBlockade"></param>
|
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
|
public ZoneBlockadeResultDto ZoneBlockade(ZoneBlockadeDto zoneBlockade)
|
|
|
|
|
|
{
|
|
|
|
|
|
string url = $"{hikRoBotConfig.api}/zone/blockade";
|
|
|
|
|
|
return GenRequestHeader(url).PostJsonAsync(zoneBlockade).Result.GetJsonAsync<ZoneBlockadeResultDto>().Result;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 载具绑定
|
|
|
|
|
|
///
|
|
|
|
|
|
/// 将载具(货架/料箱等)与指定库位进行绑定。
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="carrierBind"></param>
|
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
|
public CarrierBindResultDto CarrierBind(CarrierBindDto carrierBind)
|
|
|
|
|
|
{
|
|
|
|
|
|
string url = $"{hikRoBotConfig.api}/carrier/bind";
|
|
|
|
|
|
return GenRequestHeader(url).PostJsonAsync(carrierBind).Result.GetJsonAsync<CarrierBindResultDto>().Result;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 载具解绑
|
|
|
|
|
|
///
|
|
|
|
|
|
/// 解除载具(货架/料箱等)与库位的绑定关系。
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="carrierUnbind"></param>
|
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
|
public CarrierUnbindResultDto CarrierUnbind(CarrierUnbindDto carrierUnbind)
|
|
|
|
|
|
{
|
|
|
|
|
|
string url = $"{hikRoBotConfig.api}/carrier/unbind";
|
|
|
|
|
|
return GenRequestHeader(url).PostJsonAsync(carrierUnbind).Result.GetJsonAsync<CarrierUnbindResultDto>().Result;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 库位绑定
|
|
|
|
|
|
///
|
|
|
|
|
|
/// 将载具绑定到指定库位。
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="siteBind"></param>
|
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
|
public SiteBindResultDto SiteBind(SiteBindDto siteBind)
|
|
|
|
|
|
{
|
|
|
|
|
|
string url = $"{hikRoBotConfig.api}/site/bind";
|
|
|
|
|
|
return GenRequestHeader(url).PostJsonAsync(siteBind).Result.GetJsonAsync<SiteBindResultDto>().Result;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 载具锁定
|
|
|
|
|
|
///
|
|
|
|
|
|
/// 锁定指定载具,禁止AGV操作该载具。
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="carrierLock"></param>
|
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
|
public CarrierLockResultDto CarrierLock(CarrierLockDto carrierLock)
|
|
|
|
|
|
{
|
|
|
|
|
|
string url = $"{hikRoBotConfig.api}/carrier/lock";
|
|
|
|
|
|
return GenRequestHeader(url).PostJsonAsync(carrierLock).Result.GetJsonAsync<CarrierLockResultDto>().Result;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 库位锁定
|
|
|
|
|
|
///
|
|
|
|
|
|
/// 锁定指定库位,禁止AGV访问该库位。
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="siteLock"></param>
|
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
|
public SiteLockResultDto SiteLock(SiteLockDto siteLock)
|
|
|
|
|
|
{
|
|
|
|
|
|
string url = $"{hikRoBotConfig.api}/site/lock";
|
|
|
|
|
|
return GenRequestHeader(url).PostJsonAsync(siteLock).Result.GetJsonAsync<SiteLockResultDto>().Result;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 预占任务
|
|
|
|
|
|
///
|
|
|
|
|
|
/// 预占AGV资源,为后续任务执行做准备。
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="preTask"></param>
|
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
|
public PreTaskResultDto PreTask(PreTaskDto preTask)
|
|
|
|
|
|
{
|
|
|
|
|
|
string url = $"{hikRoBotConfig.api}/task/pretask";
|
|
|
|
|
|
return GenRequestHeader(url).PostJsonAsync(preTask).Result.GetJsonAsync<PreTaskResultDto>().Result;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 查询任务状态
|
|
|
|
|
|
///
|
|
|
|
|
|
/// 根据任务编号查询任务的当前执行状态。
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="queryTask"></param>
|
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
|
public QueryTaskResultDto QueryTaskStatus(QueryTaskDto queryTask)
|
|
|
|
|
|
{
|
|
|
|
|
|
string url = $"{hikRoBotConfig.api}/task/query";
|
|
|
|
|
|
return GenRequestHeader(url).PostJsonAsync(queryTask).Result.GetJsonAsync<QueryTaskResultDto>().Result;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 查询机器人状态
|
|
|
|
|
|
///
|
|
|
|
|
|
/// 查询指定机器人的当前运行状态信息。
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="queryRobot"></param>
|
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
|
public QueryRobotResultDto QueryRobotStatus(QueryRobotDto queryRobot)
|
|
|
|
|
|
{
|
|
|
|
|
|
string url = $"{hikRoBotConfig.api}/robot/query";
|
|
|
|
|
|
return GenRequestHeader(url).PostJsonAsync(queryRobot).Result.GetJsonAsync<QueryRobotResultDto>().Result;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 查询载具状态
|
|
|
|
|
|
///
|
|
|
|
|
|
/// 查询指定载具的当前位置和状态信息。
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="queryCarrier"></param>
|
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
|
public QueryCarrierResultDto QueryCarrierStatus(QueryCarrierDto queryCarrier)
|
|
|
|
|
|
{
|
|
|
|
|
|
string url = $"{hikRoBotConfig.api}/carrier/query";
|
|
|
|
|
|
return GenRequestHeader(url).PostJsonAsync(queryCarrier).Result.GetJsonAsync<QueryCarrierResultDto>().Result;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 物料标签绑定
|
|
|
|
|
|
///
|
|
|
|
|
|
/// 将物料与标签进行绑定关联。
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="matLabelBind"></param>
|
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
|
public MatLabelBindResultDto MatLabelBind(MatLabelBindDto matLabelBind)
|
|
|
|
|
|
{
|
|
|
|
|
|
string url = $"{hikRoBotConfig.api}/matlabel/bind";
|
|
|
|
|
|
return GenRequestHeader(url).PostJsonAsync(matLabelBind).Result.GetJsonAsync<MatLabelBindResultDto>().Result;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 物料标签解绑
|
|
|
|
|
|
///
|
|
|
|
|
|
/// 解除物料与标签的绑定关系。
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="matLabelUnbind"></param>
|
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
|
public MatLabelUnbindResultDto MatLabelUnbind(MatLabelUnbindDto matLabelUnbind)
|
|
|
|
|
|
{
|
|
|
|
|
|
string url = $"{hikRoBotConfig.api}/matlabel/unbind";
|
|
|
|
|
|
return GenRequestHeader(url).PostJsonAsync(matLabelUnbind).Result.GetJsonAsync<MatLabelUnbindResultDto>().Result;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 设备状态通知
|
|
|
|
|
|
///
|
|
|
|
|
|
/// 向上层系统通知设备(AGV/载具等)的状态变化。
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="equipmentNotify"></param>
|
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
|
public EquipmentNotifyResultDto EquipmentNotify(EquipmentNotifyDto equipmentNotify)
|
|
|
|
|
|
{
|
|
|
|
|
|
string url = $"{hikRoBotConfig.api}/spi/wcs/robot/eqpt/notify";
|
|
|
|
|
|
return GenRequestHeader(url).PostJsonAsync(equipmentNotify).Result.GetJsonAsync<EquipmentNotifyResultDto>().Result;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 设备状态通知(国标)
|
|
|
|
|
|
///
|
|
|
|
|
|
/// 以国标格式向上层系统通知设备状态变化。
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="equipmentNotify"></param>
|
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
|
public EquipmentNotifyResultDto EquipmentNotifyGbt(EquipmentNotifyDto equipmentNotify)
|
|
|
|
|
|
{
|
|
|
|
|
|
string url = $"{hikRoBotConfig.api}/spi/wcs/robot/eqpt/notifyGbt";
|
|
|
|
|
|
return GenRequestHeader(url).PostJsonAsync(equipmentNotify).Result.GetJsonAsync<EquipmentNotifyResultDto>().Result;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 生成请求头
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="url"></param>
|
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
|
private IFlurlRequest GenRequestHeader(string url)
|
|
|
|
|
|
{
|
|
|
|
|
|
var request = url
|
|
|
|
|
|
.WithHeader("Content-Type", hikRoBotConfig.contentType)
|
|
|
|
|
|
.WithHeader("User-Agent", hikRoBotConfig.userAgent)
|
|
|
|
|
|
.WithHeader("X-lr-request-id", System.Guid.NewGuid().ToString("N"))
|
|
|
|
|
|
.WithHeader("X-lr-version", hikRoBotConfig.xlrVersion)
|
|
|
|
|
|
.WithTimeout(TimeSpan.FromSeconds(15));
|
|
|
|
|
|
return request;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|