Запуск POST через Playwright на C#C#

Место общения программистов C#
Ответить
Anonymous
 Запуск POST через Playwright на C#

Сообщение Anonymous »

Я пытался отправить команду Post в Rest API с помощью драматурга,
он не ждет, пока страница перенаправится на ответ json, и в результате возвращает страницу вызова js (например, Cloudflare), который не может преобразоваться в json и выдает исключение.

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

private IPlaywright _playwright;
private IBrowser _browser;
private IBrowserContext _context;

public async Task InitializePlaywrightAsync()
{
_playwright = await Playwright.CreateAsync();
_browser = await _playwright.Chromium.LaunchAsync(new BrowserTypeLaunchOptions { Headless = true });
_context = await _browser.NewContextAsync();
}

private async Task PostToUrlAsJObject(string url, StringContent content)
{
try
{
string con = await content.ReadAsStringAsync();
var response = await _context.APIRequest.PostAsync(url, new()
{
DataString = con,
Headers = new Dictionary
{
{ "Content-Type", "application/json" },
{ "Accept", "application/json" },
{ "User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36" },
{ "Referer", url },
{ "Origin", new Uri(url).GetLeftPart(UriPartial.Authority) },
{ "Accept-Language", "en-US,en;q=0.9" },
{ "Accept-Encoding", "gzip, deflate, br" }
},
});

string res = await response.TextAsync();
return JObject.Parse(res);
}
catch (Exception ex)
{
Console.WriteLine($"Error during POST request:\r\nURL: {url}\r\nError: {ex.Message}\r\nStack Trace: {ex.StackTrace}");
return null;
}
}
Подобного вопроса по C# не встречал...

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

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

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

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

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

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