Witam,
może ktoś mądrzejszy podpowie dlaczego tak się dzieje i jak z tym walczyć.. a chodzi o zapytania http do stron WWW.
Mam taki kod:
namespace WebRequest_Sample
{
class Program
{
static void Main(string[] args)
{
string url = @"http://www.ipqualityscore.com/api/ip_lookup.php?KEY=e16wr9b9530850n55methqm0htuhpe&IP=91.108.71.104&IM=1&STRICT=1";
Uri httpSite = new Uri(url);
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.UserAgent = "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36";
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream resStream = response.GetResponseStream();
string response_text = string.Empty;
using (StreamReader reader = new StreamReader(resStream, Encoding.UTF8))
{
response_text = reader.ReadToEnd();
}
Console.WriteLine(response_text);
Console.ReadKey();
}
}
}
I ten oto kod nic mi nie zwraca.. Wygląda na to, że serwis blokuje zapytania z C# tzn. tak mi się wydaje, bo miałem też problem ze stroną http://whatismyipaddress.com/ip/46.101.213.152
, która przy wykonywaniu requestów z C# zwracała wynik: "Access Denied (AK1). Contact support@whatismyipaddress.com". Pomogło dodanie UserAgenta, którym przedstawia się przeglądarka Chrome.
Nawiązując jeszcze do tematu wątku, czyli dlaczego serwisy nie lubią requestów z C#. Robiłem jeszcze próbę przy użyciu Pythona i biblioteki requests i tam bez problemów otrzymuję wyniki dla obu wspomnianych przeze mnie stron WWW.
Z tym można jeszcze pokombinować, aby móc wykonywać zapytania z C# ?