Anonymous
Запуск POST через Playwright на C#
Сообщение
Anonymous » 23 ноя 2024, 22:02
Я пытался отправить команду 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
1732388544
Anonymous
Я пытался отправить команду Post в Rest API с помощью драматурга, он не ждет, пока страница перенаправится на ответ json, и в результате возвращает страницу вызова js (например, Cloudflare), который не может преобразоваться в json и выдает исключение. [code]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; } } [/code] Подобного вопроса по C# не встречал... Подробнее здесь: [url]https://stackoverflow.com/questions/79217426/running-post-via-playwright-in-c-sharp[/url]