Я пытаюсь прочитать удаленный файл с использованием HttpWebRequest в приложении консоли С#. Но по какой-то причине запрос пуст - он никогда не находит URL-адрес.
Это мой код:
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create("http://uo.neverlandsreborn.org:8000/botticus/status.ecl");
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Почему это невозможно?
Файл содержит только строку. Ничего больше!
Как вы читаете данные ответа? Возвращается ли он как успешный, но пустой, или есть ли статус ошибки?
Если это не поможет, попробуйте Wireshark, что позволит вам увидеть, что происходит на сетевом уровне.
Кроме того, рассмотрите возможность использования WebClient
вместо WebRequest
- это делает его невероятно легким, когда вам не нужно ничего делать изощренный:
string url = "http://uo.neverlandsreborn.org:8000/botticus/status.ecl";
WebClient wc = new WebClient();
string data = wc.DownloadString(url);
Вы должны получить поток ответов и прочитать данные из этого. Здесь функция, которую я написал для одного проекта, который делает именно это:
private static string GetUrl(string url)
{
HttpWebRequest request = (HttpWebRequest)WebRequest.CreateDefault(new Uri(url));
using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
{
if (response.StatusCode != HttpStatusCode.OK)
throw new ServerException("Server returned an error code (" + ((int)response.StatusCode).ToString() +
") while trying to retrieve a new key: " + response.StatusDescription);
using (var sr = new StreamReader(response.GetResponseStream()))
{
return sr.ReadToEnd();
}
}
}