Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在.NET中,HttpResponseMessage返回403

在.NET中,HttpResponseMessage返回403
EN

Stack Overflow用户
提问于 2021-08-29 03:23:40
回答 1查看 30关注 0票数 0

我有一个async方法,它在.Net中反复调用HttpClient。我将我的代码模拟为下面的一个小的控制台应用程序:

代码语言:javascript
运行
AI代码解释
复制
    private static HttpClient req { get; set; } = new HttpClient();

    static async Task Main(string[] args)
    {
        Console.WriteLine("Please press enter to start healthCheck");
        Console.ReadLine();

        healthCheck();

        Console.ReadLine();
    }

    private static async Task healthCheck()
    {
        while (true)
        {
            req.DefaultRequestHeaders.Add("apikey", "myPassword");

            string strUrl = "http://myUrl";

            HttpResponseMessage hrm = await req.GetAsync(strUrl);

            Console.WriteLine("=> statusCode:" + (int)hrm.StatusCode);

            await Task.Delay(5000);
        }
    }

输出为:

问题是,当我使用Postman或者像下面这样用python编写代码时,每次它都响应200而不是403

代码语言:javascript
运行
AI代码解释
复制
import requests as req
import time as t

url = "http://adpsms.adpdigital.com/report/?date=2021-08-30"
customHeader = {"apikey": "sssrjdIiGisbViKA"}

i = 10

while (i > 0):
    response = req.get(url, headers = customHeader)

    print("statusCode: " + str(response.status_code))

    i -= 1
    t.sleep(5)

我认为这是一个服务器错误,但当我每次用python响应200时,我明白这将是我的代码或基于客户端的东西的问题。

因为我的项目是基于.NET的,所以我想让它在上面工作。任何建议都将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-08-29 03:46:06

在循环的每一次迭代中,您都在添加DefaultRequestHeaders。这意味着它们将在您的周期的每次迭代中反复添加到HttpClient的全局实例中

根据the official docs的说法,这些报头将随每个请求一起发送。对于您的特定任务,您可能只添加一次它们(这就是名称包含前缀default的原因)。

因此,如果您稍微重写代码,如下所示:

代码语言:javascript
运行
AI代码解释
复制
private static HttpClient req { get; set; } = new HttpClient();

    static async Task Main(string[] args)
    {
        Console.WriteLine("Please press enter to start healthCheck");
        Console.ReadLine();
        AddDefaultHeaders();
        healthCheck();
    
        Console.ReadLine();
    }
    
    private static void AddDefaultHeaders()
    {
        req.DefaultRequestHeaders.Add("apiKey", "myPassword");
    }

    private static async Task healthCheck()
    {
        while (true)
        {
            string strUrl = "http://myUrl";
    
            HttpResponseMessage hrm = await req.GetAsync(strUrl);
    
            Console.WriteLine("=> statusCode:" + (int)hrm.StatusCode);
    
            await Task.Delay(5000);
        }
    }

它应该工作得很好。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68972396

复制
相关文章
WebClient 访问间歇性返回403解决方案
说明:前段时间做的一个项目莫名的返回403的错误,这种情况也多大是程序员最不喜欢的了,没办法先来分析一下错误信息。之前的代码如下: WebClient webclient = new WebClient(); string u9Str = webclient.DownloadString("http://www.uuu9.com/"); 很简单的请求返回string信息的代码,最诧异的是这个返回 “远程服务器返回错误: (403) 已禁止。”的错误还是间歇性的,报错的几率很小但是肯定存在,因为查看错误日志让
磊哥
2018/05/08
1.6K0
WebClient 访问间歇性返回403解决方案
java 用httpclient访问https时经常返回403的原因
纠结了一天的问题终于落下了帷幕!先听一首歌吧 今天使用了一些httpclient包进行https网页数据的访问,但是一直返回403的问题,一开始以为网站做了限制为了防止爬虫,后来就加入了头部user-Agent来模拟浏览器,结果还是不行。紧接着又加入了cookie,结果仍然返回403。直到下午去github上看到了一个二次封装httpclient的util工具。下载下来放到了idea里访问了一下https的这个url结果成功了。对比了一下不同之处,除了httpclient jar包的版本有高低外还有就是
企鹅号小编
2018/01/29
3.4K0
java 用httpclient访问https时经常返回403的原因
在.Net Core中记录日志
一个完善的系统,必然会有非常完善的日志记录,用户的操作、系统的运行状况等信息被完整的记录下来,方便我们对系统进行维护和改进。.net core 也为日志记录提供了内置的支持。
拓荒者IT
2019/09/23
1.3K0
【说站】splitlines在python中返回列表
2、返回一个是否包含换行符的列表,如果参数keepends为False,则不包含换行符。
很酷的站长
2022/11/23
2.6K0
在.NET中调用存储过程
因为做项目要用到数据库,因此存储过程是必不可少的,看了一点如何在.NET中调用存储过程的资料,颇有点心得,觉得这个东西是当用到数据库的时候必须要会的一项技术。下面是它的定义:
SAP梦心
2022/05/07
2.4K0
在 .NET Core 中运行 JavaScript
在 .NET Framework 时,我们可以通过V8.NET等组件来运行 JavaScript,不过目前我看了好几个开源组件包括V8.NET都还不支持 .NET Core ,我们如何在 .NET Core 中运行 JavaScript 呢,答案是使用 NodeServices。关于为何有在 .NET Core 中执行 JavaScript 这种需求,比较特殊,举个栗子:当你做模拟登录时,目标网站可能采用一些加密算法来计算特殊的值,如果你要完全模拟,那么除了用C#翻译这个算法还有个办法就是直接将这段加密算法JS代码拷贝使用C#来执行。还举个栗子:SPA服务端渲染,比如Angular、 React等。
晓晨
2019/03/20
4.1K0
在 .NET Core 中运行 JavaScript
img 标签 访问图片 返回403 forbidden问题,meta标签的说明[通俗易懂]
html访问图片资源403问题(http referrer) 前言 之前碰到一个问题,就是html中通过img标签引入一个图片地址,报403。但是这个图片地址直接复制出来在地址栏打开,却是看得到的。
全栈程序员站长
2022/07/11
2.8K0
img 标签 访问图片 返回403 forbidden问题,meta标签的说明[通俗易懂]
Autofac在.NET Core 中的使用
Autofac 是一款.NET IoC 容器 . 它管理类之间的依赖关系, 从而使应用在规模及复杂性增长的情况下依然可以轻易地修改 。.NET CORE 中也内置了依赖注入,但是有些情况下需要用到Autofac去进行依赖注入,Autofac支持的所有注入方式以外,还支持属性注入和方法注入。接下来我们通过示例来简单了解Autofac的使用
心莱科技雪雁
2020/05/11
2.1K0
.NET在企业中的成功案例
Wal-Mart是美国最大的零售商之一。他们的在线商店Walmart.com是使用Microsoft .NET开发的,该平台处理着数以亿计的会员和访客的交易。Walmart.com使用.NET平台来为其客户提供全面的服务,包括搜索、购物车、支付、客户账户等。
软件架构师Michael
2023/04/30
4420
.Net Core在Middleware中解析RouteData
在ASP.Net Core中,如果直接在Middleware中获取RouteData返回的是空值,这是因为RouterMiddleware还没执行。但有些情况下需要获取RouteData,这要怎么做呢?
Mr. Wei
2018/09/12
1.1K0
.Net Core在Middleware中解析RouteData
在asp.net mvc中使用PartialView返回部分HTML段
在asp.net mvc中返回View时使用的是ViewResult,它继承自ViewResultBase 同一时候它还有个兄弟PartialViewResult
全栈程序员站长
2022/07/13
1.7K0
Springboot 403
如果同时进行了filter和CorsConfiguration的配置,OPTIONS请求会返回403,并且控制台提示 Itdoesnothave HTTP ok status.非常恶心。 网上没有找到相应的解释。
喜欢天文的pony站长
2020/06/29
2K0
Springboot 403
在.NET Core 中的并发编程
原文地址:http://www.dotnetcurry.com/dotnet/1360/concurrent-programming-dotnet-core 今天我们购买的每台电脑都有一个多核心的 CPU,允许它并行执行多个指令。操作系统通过将进程调度到不同的内核来发挥这个结构的优点。 然而,还可以通过异步 I/O 操作和并行处理来帮助我们提高单个应用程序的性能。 在.NET Core中,任务 (tasks) 是并发编程的主要抽象表述,但还有其他支撑类可以使我们的工作更容易。 并发编程 - 异步 vs. 多
企鹅号小编
2018/02/05
2.1K0
在.NET Core 中的并发编程
Gitlab 403 forbidden
搭建的Gitlab。但今天打开页面的时候显示的是空白页面,上面还有一次文本Forbidden。
匿名用户的日记
2021/12/14
1.4K0
Gitlab 403 forbidden
搭建OpenStack中的glance报错 403 503
403 错误一般是glance下的glance-api.conf与glance-registry.conf 配置文件中paste_deploy是否有误
指剑
2022/07/17
7090
搭建OpenStack中的glance报错 403 503
ASP.NET Core中的Action的返回值类型
在Asp.net Core之前所有的Action返回值都是ActionResult,Json(),File()等方法返回的都是ActionResult的子类。并且Core把MVC跟WebApi合并之后Action的返回值体系也有了很大的变化。
MJ.Zhou
2020/06/19
2.9K0
ASP.NET Web API编程——控制器
1控制器操作的参数 控制器操作的参数可以是内置类型也可以是自定义类型,无参也是允许的。 2控制器操作返回值 类型 说明 void 操作返回值为void时,Web API返回空HTTP响应,其状态码为204(无内容) HttpResponseMessage Web api会将此返回值直接转换为HTTP消息 IHttpActionResult 接口形式 内置类型或自定义类型 无 2.1返回值为HttpResponseMess
甜橙很酸
2018/04/17
2.4K0
在vue中如何监听移动端的返回键
环境:vue.js+vant 问题:首页列表和分类页的列表用的同一个页面,页面区分用的是本地缓存,希望在分类页点击返回的时候,执行清除缓存,刷新页面 解决原理:利用history和浏览器刷新popstate状态去实现 每一次返回都会去历史记录回退 -1 所以就在进入页面之前 往历史记录里面多记录一次当前页面的链接。然后再回退的时候监听刷新,去做一些事情。 具体执行: 1、挂载完成后,判断浏览器是否支持popstate
IT工作者
2022/03/14
3.7K0
在PHP中 为什么in_array(0, ['a', 'b', 'c'])返回true
直观上看,0没有在数组['a', 'b', 'c']中,也不会等于abc这个字符串。
用户9076598
2022/03/02
2.9K0
在 React 16 中从 setState 返回 null 的妙用[每日前端夜话0x7D]
在 React 16 中为了防止不必要的 DOM 更新,允许你决定是否让 .setState 更来新状态。在调用 .setState 时返回 null 将不再触发更新。
疯狂的技术宅
2019/06/11
14.9K0

相似问题

在HttpResponseMessage中返回int的.Net核心

110

在OData操作中返回HttpResponseMessage

11

vb.net任务(Of HttpResponseMessage)到HttpResponseMessage

12

CLR返回ASP.NET对象或HttpResponseMessage

23

HttpResponseMessage不返回ByteArrayContent - ASP.NET核心

11
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
💥开发者 MCP广场重磅上线!
精选全网热门MCP server,让你的AI更好用 🚀
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档