首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ASP.NET核心3.1 Webapi项目在标头中返回原始数据为空

ASP.NET核心3.1 Webapi项目在标头中返回原始数据为空
EN

Stack Overflow用户
提问于 2021-05-01 20:24:39
回答 1查看 45关注 0票数 0

我有一个WebApi项目来提供数据,还有一个ASP.NET Core3.1项目来调用API。我使用Api调用者头部字段,如HOST,REFERER,ORIGIN来检测客户端域名,客户端域名调用Api来提供正确的数据,不希望post/get domain作为来自客户端的参数,只想让其他域名调用我的api,我根据域名提供数据,我实现如下:

代码语言:javascript
复制
        Request.Headers.TryGetValue("Host", out var traceValueHost);
        Request.Headers.TryGetValue("Referer", out var traceValueReferer);
        Request.Headers.TryGetValue("Origin", out var traceValueOrigin);

但是当我发布代码时,所有3个函数都返回null。实际上我检测不到客户端域和面对错误,会有什么问题?客户端如何通过get/post在Webapi call头中向我发送域名?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-05-04 21:32:20

我发现的唯一方法是将Origin添加到客户端域标头

代码语言:javascript
复制
    public static async Task<T> GetWebApiAsync<T>(string postUrl, string domain="")
    {
        HttpClient Client = new HttpClient();
        if (domain != "")
            Client.DefaultRequestHeaders.TryAddWithoutValidation("Origin", domain);

        string result = await Client.GetAsync(postUrl)?
            .Result?.Content?.ReadAsStringAsync()??string.Empty;

        if (result == string.Empty) return default(T);

        return JsonConvert.DeserializeObject<T>(result);
    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67346242

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档