I have the following GET request in python:
url = "https://web.trf3.jus.br/certidao/Certidao/Solicitar"
payload={}
headers = {
'authority': 'web.trf3.jus.br',
'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.9',
'accept-language': 'pt-BR,pt-PT;q=0.9,pt;q=0.8,en-US;q=0.7,en;q=0.6',
'cache-control': 'max-age=0',
'sec-ch-ua': '"Chromium";v="104", " Not A;Brand";v="99", "Google Chrome";v="104"',
'sec-ch-ua-mobile': '?0',
'sec-ch-ua-platform': '"Windows"',
'sec-fetch-dest': 'document',
'sec-fetch-mode': 'navigate',
'sec-fetch-site': 'none',
'sec-fetch-user': '?1',
'upgrade-insecure-requests': '1',
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.0.0 Safari/537.36'
}
response = requests.request("GET", url, headers=headers, data=payload)
It works fine. However, when I try to do the same request in C# using RestSharp, I always get timeout errors. The request never completes successfully.
var request = new RestRequest("https://web.trf3.jus.br/certidao/Certidao/Solicitar", Method.Get);
request.AddHeader("authority", "web.trf3.jus.br");
request.AddHeader("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.9");
request.AddHeader("accept-language", "pt-BR,pt-PT;q=0.9,pt;q=0.8,en-US;q=0.7,en;q=0.6");
request.AddHeader("cache-control", "max-age=0");
request.AddHeader("sec-ch-ua", "\"Chromium\";v=\"104\", \" Not A;Brand\";v=\"99\", \"Google Chrome\";v=\"104\"");
request.AddHeader("sec-ch-ua-mobile", "?0");
request.AddHeader("sec-ch-ua-platform", "\"Windows\"");
request.AddHeader("sec-fetch-dest", "document");
request.AddHeader("sec-fetch-mode", "navigate");
request.AddHeader("sec-fetch-site", "none");
request.AddHeader("sec-fetch-user", "?1");
request.AddHeader("upgrade-insecure-requests", "1");
request.AddHeader("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.0.0 Safari/537.36");
While it does not answer the question why, the following works well using Flurl, which is my personal preference for http calls:
using Flurl.Http;
namespace Program
{
public static class Program
{
static async Task Main()
{
var url = "https://web.trf3.jus.br/certidao/Certidao/Solicitar";
var headers = new Dictionary<string, string>();
headers.Add("authority", "web.trf3.jus.br");
headers.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.9");
headers.Add("accept-language", "pt-BR,pt-PT;q=0.9,pt;q=0.8,en-US;q=0.7,en;q=0.6");
headers.Add("cache-control", "max-age=0");
headers.Add("sec-ch-ua", "\"Chromium\";v=\"104\", \" Not A;Brand\";v=\"99\", \"Google Chrome\";v=\"104\"");
headers.Add("sec-ch-ua-mobile", "?0");
headers.Add("sec-ch-ua-platform", "\"Windows\"");
headers.Add("sec-fetch-dest", "document");
headers.Add("sec-fetch-mode", "navigate");
headers.Add("sec-fetch-site", "none");
headers.Add("sec-fetch-user", "?1");
headers.Add("upgrade-insecure-requests", "1");
headers.Add("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.0.0 Safari/537.36");
var result = await url.WithHeaders(headers).GetStringAsync();
}
}
}
This works too using RestSharp (have you forgotten await by any chance?)
using Flurl.Http;
using RestSharp;
namespace Program
{
public static class Program
{
static async Task Main()
{
var url = "https://web.trf3.jus.br/certidao/Certidao/Solicitar";
var headers = new Dictionary<string, string>
{
{ "authority", "web.trf3.jus.br" },
{ "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.9" },
{ "accept-language", "pt-BR,pt-PT;q=0.9,pt;q=0.8,en-US;q=0.7,en;q=0.6" },
{ "cache-control", "max-age=0" },
{ "sec-ch-ua", "\"Chromium\";v=\"104\", \" Not A;Brand\";v=\"99\", \"Google Chrome\";v=\"104\"" },
{ "sec-ch-ua-mobile", "?0" },
{ "sec-ch-ua-platform", "\"Windows\"" },
{ "sec-fetch-dest", "document" },
{ "sec-fetch-mode", "navigate" },
{ "sec-fetch-site", "none" },
{ "sec-fetch-user", "?1" },
{ "upgrade-insecure-requests", "1" },
{ "User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.0.0 Safari/537.36" }
};
var client = new RestClient();
var request = new RestRequest(url,Method.Get);
request.AddHeaders(headers);
var result = await client.ExecuteAsync(request);
}
}
}