2013-04-16 2 views
1

Я пытаюсь написать небольшое настольное приложение, которое будет отслеживать веб-сайт через их API. Я никогда не делал много работы с API или WebRequests, поэтому я не уверен, как это сделать. После генерации запросов я пытаюсь получить ответ со страницы, но это возвращает ошибку 404, хотя, если я перейду к тому же URL-адресу в моем браузере, он отлично работает. Я понятия не имею, как обойти это, и исследования, которые я сделал для людей, у которых была такая же проблема, не помогли мне это понять. Может ли кто-нибудь объяснить мне, что происходит на базовом уровне? Мой код был размещен ниже:HttpWebResponse Возвращает ошибку 404, когда существует страница

private void Window_Loaded(object sender, RoutedEventArgs e) 
    { 
     string sURL; 
     sURL = @"https://habitrpg.com/api/v1/user"; 

     HttpWebRequest request = (HttpWebRequest)WebRequest.Create(sURL); 

     HttpWebResponse response = null; 
     try 
     { 
      response = (HttpWebResponse)request.GetResponse(); 
     } 
     catch (Exception ex) 
     { 
      resultText.Text = "Oh no!"; 
     } 
     Stream receiveStream = response.GetResponseStream(); 
     StreamReader readStream = new StreamReader(receiveStream, Encoding.UTF8); 
     string responseData = readStream.ReadToEnd(); 
    } 
+0

Я получил ошибку 401, Вы уверены, что вы получаете 404? – Ofear

+0

Да, если я пройду через код во время его запуска, исключение говорит, что это ошибка 404. –

ответ

2

Вы должны игнорировать https сертификат, посмотреть на этот вопрос:

How do I use WebRequest to access an SSL encrypted site using https?

+0

Я попытался добавить строки, о которых говорит этот вопрос, и я все еще получаю ошибку 404. Все, что мне нужно было сделать, это добавить строку ServicePointManager и определить логическое значение, которое он определяет, не так ли? –

+0

@SeanCogan Это следующий шаг, если вы получаете 404, что означает: неверный url, неверные параметры или некоторые заголовки также могут быть недействительными. Самый простой способ проверить разницу с браузером - «Fiddler». Разрешить трафик 'https' и сделать запрос в браузере и вашей программе. – webdeveloper

Смежные вопросы