Browse Source

Merge pull request #1488 from colinin/http-tool-body

feat: Add request body to the http tool
pull/1492/head
yx lin 4 months ago
committed by GitHub
parent
commit
c858dd2145
No known key found for this signature in database GPG Key ID: B5690EEEBB952194
  1. 12
      aspnet-core/modules/ai/LINGYUN.Abp.AI.Tools.Http/LINGYUN/Abp/AI/Tools/Http/HttpAITool.cs

12
aspnet-core/modules/ai/LINGYUN.Abp.AI.Tools.Http/LINGYUN/Abp/AI/Tools/Http/HttpAITool.cs

@ -8,6 +8,7 @@ using System.Net.Http.Headers;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
using Volo.Abp.Http.Client.Authentication; using Volo.Abp.Http.Client.Authentication;
using Volo.Abp.Json;
using Volo.Abp.MultiTenancy; using Volo.Abp.MultiTenancy;
using Volo.Abp.Timing; using Volo.Abp.Timing;
using Volo.Abp.Tracing; using Volo.Abp.Tracing;
@ -22,7 +23,9 @@ public class HttpAITool
Context = context; Context = context;
} }
public async virtual Task<object?> InvokeAsync(IDictionary<string, object?>? paramters = null) public async virtual Task<object?> InvokeAsync(
IDictionary<string, object?>? paramters = null,
object? body = null)
{ {
// Abp远程服务适配 // Abp远程服务适配
//var remoteService = Context.ToolDefinition.GetRemoteServiceOrNull(); //var remoteService = Context.ToolDefinition.GetRemoteServiceOrNull();
@ -90,6 +93,12 @@ public class HttpAITool
Context.ToolDefinition.GetHttpMethod(), Context.ToolDefinition.GetHttpMethod(),
requestUri); requestUri);
if (body != null)
{
var jsonSerializer = Context.ServiceProvider.GetRequiredService<IJsonSerializer>();
httpRequestMessage.Content = new StringContent(jsonSerializer.Serialize(body));
}
var headers = Context.ToolDefinition.GetHttpHeaders(); var headers = Context.ToolDefinition.GetHttpHeaders();
foreach (var header in headers) foreach (var header in headers)
{ {
@ -148,6 +157,7 @@ public class HttpAITool
//X-Requested-With //X-Requested-With
requestMessage.Headers.Add("X-Requested-With", "XMLHttpRequest"); requestMessage.Headers.Add("X-Requested-With", "XMLHttpRequest");
requestMessage.Headers.Add("X-Requested-From", "abp-ai-httptool");
//Timezone //Timezone
var currentTimezoneProvider = Context.ServiceProvider.GetRequiredService<ICurrentTimezoneProvider>(); var currentTimezoneProvider = Context.ServiceProvider.GetRequiredService<ICurrentTimezoneProvider>();

Loading…
Cancel
Save