Не удается подключиться к API с помощью C# [закрыто]C#

Место общения программистов C#
Ответить
Anonymous
 Не удается подключиться к API с помощью C# [закрыто]

Сообщение Anonymous »

Я пробовал различные подходы C# для подключения к API, но пока не смог заставить их работать. URL-адрес всегда работает с браузером Chrome. Я просмотрел множество сообщений здесь о переполнении стека, но не нашел ответов, которые могли бы мне помочь.
В C# я пробовал веб-клиент, httpclient, но не повезло. С почтальоном я легко получаю данные. Я пытался просмотреть запрос с помощью Fiddler 4. Запрос почтальона работает отлично, и его легко увидеть, но при запуске некоторого кода C # запрос никогда не отображается, несмотря на то, что https-трафик захватывается и декодируется. Я получаю тайм-аут или соединение было закрыто. Я не думаю, что это проблема брандмауэра. Вот код C#, который не работает:

Код: Выделить всё

internal class Program
{
static void Main(string[] args)
{
Getit();
}

private static async void Getit()
{
try
{
string baseUrl = "https://api.nasdaq.com/api/nordic/instruments/CSE32679/trades?type=INTRADAY&assetClass=SHARES&lang=en";

var client = new System.Net.Http.HttpClient();
//var request = new System.Net.Http.HttpRequestMessage(System.Net.Http.HttpMethod.Get, baseUrl);

var request = new HttpRequestMessage
{
Method = HttpMethod.Get,
RequestUri = new Uri(baseUrl),
Headers = {
{ HttpRequestHeader.UserAgent.ToString(), "Could try to set this" },
{ HttpRequestHeader.Accept.ToString(), "application/json" },
{ HttpRequestHeader.Cookie.ToString(), "ak_bmsc=057AA34F94542D7FBF06A239807E1BC8~000000000000000000000000000000~YAAQHmjdWE1nYjiTAQAASfEPZRmj3xtTz7eQGDtn2GEgSGhkx070psq3nqpvIhA3wzaXGJm2o91q1M3D6DvQwqUZzuw+esKY13f8GdqUt4dJPxrgvfliIS8ehkC7YBSn7IH6Bcw/8s8hOjaP8i3WszFF0UMpQ4EaBthZep9yFYRYELgRMKXnMyzQBUsdAPhaoZIB9An1hH3LmRhIIx9zkwRt4TCY3O2eBOYzaHyo95pTmhp9SSWzHUM6RCj5+owjXtoHDlSjIHRmCVwtpNp20gn5b70Dvvb4C6tpdNUWvK8YJFbs6M5h+0ho0Z0SfGND59oPOaMSA5/i8wRKfiV/fl7ZtQtyQ8RQDxcMxA==; akaalb_ALB_Default=~op=ao_api_port_8085:ao_api_east2|~rv=23~m=ao_api_east2:0|~os=ff51b6e767de05e2054c5c99e232919a~id=ad3d95899a893885df1dfabdf47494ac" },
{ "X-Version", "1" }
},

};

var response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
Console.WriteLine(response.Content.ReadAsStringAsync());

}
catch (Exception e)
{

}
}
}
Может ли кто-нибудь помочь мне, показав код C#, который это сделает?
РЕДАКТИРОВАТЬ: Вдохновленный комментариями, я думаю, что следующий код действительно извлекает данные json, которые я ищу:

Код: Выделить всё

internal class Program
{
static async Task Main(string[] args)
{
await Getit();
}

private static async Task Getit()
{
string url = "https://api.nasdaq.com/api/nordic/instruments/CSE32679/trades?type=INTRADAY&assetClass=SHARES&lang=en";
var client = new HttpClient(new HttpClientHandler { AutomaticDecompression = System.Net.DecompressionMethods.GZip });
client.DefaultRequestHeaders.Add("Accept-Language", "en-US,en;q=0.9");
client.DefaultRequestHeaders.Add("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7");
client.DefaultRequestHeaders.Add("User-Agent", "ozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36 Edg/131.0.0.0");

var json = await client.GetStringAsync(url);
}

}
Особенно помогли комментарии Панайотиса Канавоса. Спасибо всем, кто внес свой вклад.

Подробнее здесь: https://stackoverflow.com/questions/792 ... th-c-sharp
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»