来自样板中应用程序级别的PostAsync调用

问题描述 投票:0回答:1

更新:核心问题是ABPSesssion在postasync请求之后为空。我认为,如果我能找回我的抱负,它将奏效。

我正在尝试对postAsync类型进行api调用。问题是,当我尝试使用createAsync将响应保存到数据库中时,我得到的响应非常好,我得到对象实例的异常。我检查了所有日志,上面写着“策略执行失败。请求来源http://localhost:21021没有访问资源的权限。”

对于getasync api调用,同一件事工作得很好。我该怎么办,我是从拥有所有权限的管理员帐户登录的]

//代码

    HttpClient client = new HttpClient();
    var SLACK_TOKEN = OneConsts.SlackToken;

    var values = new Dictionary<string, string>
    {
        { "token", SLACK_TOKEN },
        { "name", "contacts2" },
    };

    var content = new FormUrlEncodedContent(values);
    var response = await client.PostAsync("https://slack.com/api/conversations.create", content);

    var data = response.Content.ReadAsStringAsync().Result;
    JObject obj = JObject.Parse(data);

    foreach (var item in obj["channel"])
    {
        input.ChannelId = obj["channel"]["id"].ToString();
        input.ChannelName = obj["channel"]["name"].ToString();
        input.JSONinfo = obj["channel"].ToString();
        var slack = SlackConnector.Create(input.ChannelId, input.ChannelName, input.JSONinfo);
        await _slackconnectorManager.CreateAsync(slack);
        CurrentUnitOfWork.SaveChanges();
        MapToEntityDto(slack);

例外:

System.NullReferenceException
HResult=0x80004003
Message=Object reference not set to an instance of an object.
Source=Microsoft.AspNetCore.Http.Extensions
StackTrace:
at Microsoft.AspNetCore.Http.Extensions.UriHelper.GetDisplayUrl(HttpRequest request)
at Abp.EntityHistory.EntityHistoryHelper.CreateEntityChangeSet(ICollection1 entityEntries) at Abp.Zero.EntityFrameworkCore.AbpZeroCommonDbContext3.d__98.MoveNext()
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Abp.EntityFrameworkCore.Uow.EfCoreUnitOfWork.d__20.MoveNext()
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Abp.EntityFrameworkCore.Uow.EfCoreUnitOfWork.d__12.MoveNext()
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Abp.EntityFrameworkCore.Uow.EfCoreUnitOfWork.d__14.MoveNext()
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Abp.Domain.Uow.UnitOfWorkBase.d__57.MoveNext()
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Abp.Domain.Uow.UnitOfWorkInterceptor.<>c__DisplayClass6_0.<b__2>d.MoveNext()
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Abp.Threading.InternalAsyncHelper.d__51.MoveNext() at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter1.GetResult()
at Davigold.One.Crm.SlackConnector.SlackConnectorManager.d__4.MoveNext() in C:\Users\dell\source\repos\Davigold\OneDavigold\src\Davigold.One.Core\Crm\SlackConnector\SlackConnectorManager.cs:line 58

This exception was originally thrown at this call stack:
[External Code]
Davigold.One.Crm.SlackConnector.SlackConnectorManager.CreateAsync(Davigold.One.Crm.SlackConnector.SlackConnector) in SlackConnectorManager.cs

更新:核心问题是ABPSesssion在postasync请求之后为空。我认为,如果我能找回我的抱负,它将奏效。我正在尝试进行postAsync类型的api调用。问题是我是...

entity-framework http-post slack-api aspnetboilerplate
1个回答
0
投票

问题很简单,我需要用postasync替换该行var response = client.PostAsync(“ https://slack.com/api/conversations.create”,content).Result;

© www.soinside.com 2019 - 2024. All rights reserved.