C# 从控制台应用发出POST请求将导致错误403-访问被拒绝
我正在尝试使用新的IBKR客户端门户API。我已经编写了一个简单的控制台程序来访问API,但它导致错误403-拒绝访问。如果我试着从邮递员那里得到同样的请求,它似乎会起作用。我尝试使用fiddler查看console应用程序发送的请求,但这会导致另一个错误。如何诊断此问题C# 从控制台应用发出POST请求将导致错误403-访问被拒绝,c#,.net-core,interactive-brokers,C#,.net Core,Interactive Brokers,我正在尝试使用新的IBKR客户端门户API。我已经编写了一个简单的控制台程序来访问API,但它导致错误403-拒绝访问。如果我试着从邮递员那里得到同样的请求,它似乎会起作用。我尝试使用fiddler查看console应用程序发送的请求,但这会导致另一个错误。如何诊断此问题 using System; using System.Net.Http; using System.Threading.Tasks; namespace ConsoleApp2 { class Program
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);
}
}
}
标头中缺少用户代理<代码>客户端.DefaultRequestHeaders.Add(“用户代理”,“控制台”)您尝试自己实现
服务器CertificateCustomValidationCallback
,因此您可以在那里放置一个断点以查看它是否命中。除此之外,请比较来自Postman和code的标题。非常感谢!你帮我省下了很多寻找解决方案的时间。。。我花了两天的时间想知道为什么是403,它没有任何意义。你救了我的命,我对他们糟糕的文档很失望,这个标题应该是先决条件的一部分。再次感谢,现在我可以继续我的算法了。