c# - 从控制台应用程序发出 POST 请求导致错误 403 - 拒绝访问

标签 c# .net-core interactive-brokers

我正在尝试使用新的 IBKR 客户端门户 API。我编写了一个简单的控制台程序来访问 API,但它导致错误 403 - 拒绝访问。如果我尝试来自 Postman 的相同请求,它似乎有效。我尝试使用 fiddler 查看控制台应用程序发送的请求,但这会导致单独的错误。如何诊断此问题?

using System;
using System.Net.Http;
using System.Threading.Tasks;

namespace ConsoleApp2
{
    class Program
    {
        static async Task Main(string[] args)
        {
            Console.WriteLine("Hello World!");
            var baseURL = "https://localhost:5000/v1/portal";
            HttpClientHandler handler = new HttpClientHandler();
            handler.ServerCertificateCustomValidationCallback = HttpClientHandler.DangerousAcceptAnyServerCertificateValidator;
            var client = new HttpClient(handler);
            client.DefaultRequestHeaders.Add("Cookie", "ibkr.il = 123456789.123456.0000");
            client.DefaultRequestHeaders.Add("AcceptEncoding", "gzip, deflate, br");
            var response = await client.GetAsync(baseURL + "/sso/validate");
            string result = response.Content.ReadAsStringAsync().Result;
            Console.WriteLine(result);
        }
    }
}

最佳答案

它从标题中缺少用户代理。 client.DefaultRequestHeaders.Add("User-Agent", "Console");

关于c# - 从控制台应用程序发出 POST 请求导致错误 403 - 拒绝访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64597071/

相关文章:

c# - 获取本地组的成员

c# - 如何确定是否在 Windows 服务内部启动?

c# - 在单独的线程上运行 Log4Net appender

azure - 在 appsettings.json 中部署 Azurite 配置对部署在 Azure 上有什么影响吗?

python-3.x - 使用 native TWS Python APi(Interactive Brokers API),如何在变量中获取证券列表的价格快照?

python - 使用 Python 的 TWS 交互式经纪商 API。当通过多种方法接收实时数据时,无法将实时数据放在一起

c# - 将一组文本框控件更改为 ReadOnly = false

.net-core - 为什么所有 .NET Core 应用程序都是控制台应用程序?

c# - .csproj 能否按平台切换原生代码?

python - 获取 SPY 股价