从控制台应用发出 POST 请求导致错误 403 - 访问被拒绝
Making POST request from console app results in Error 403 - Access denied
我正在尝试使用新的 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);
}
}
}
header 中缺少 User-Agent。 client.DefaultRequestHeaders.Add("User-Agent", "Console");
我正在尝试使用新的 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);
}
}
}
header 中缺少 User-Agent。 client.DefaultRequestHeaders.Add("User-Agent", "Console");