Я получаю сообщение «Удаленный сервер возвратил ошибку: (400) неверный запрос».когда я попробую следующий код.
Если я введу URL-адрес непосредственно в адресную строку моего браузера, он вернет правильный XML-файл.
Я проверил логику своего кода, используя закомментированный "// String url =" http://www.weather.gov/xml/current_obs/KDFW.xml";", и он возвращает дамп XML.
Опять проблема в том, что адресная строка браузера возвращает дамп xml, но вызов API в коде возвращает ошибку 400.
String url = "http://api.flurry.com/eventMetrics/Event?apiAccessCode=YHJBA13CSKTMS6XHTM6M&apiKey=6XQY729FDU1CR9FKXVZP&startDate=2011-2-28&endDate=2011-3-1&eventName=Tip%20Calculated"; //String url = "http://www.weather.gov/xml/current_obs/KDFW.xml"; HttpWebRequest webreq = (HttpWebRequest)WebRequest.Create(url); WebResponse res = webreq.GetResponse(); using (Stream stream = res.GetResponseStream()) { StreamReader reader = new StreamReader(stream, Encoding.UTF8); while (reader.Peek() >= 0) { memoEdit1.Text += reader.ReadLine() + System.Environment.NewLine; } }
String url = "http://api.flurry.com/eventMetrics/Event?apiAccessCode=YHJBA13CSKTMS6XHTM6M&apiKey=6XQY729FDU1CR9FKXVZP&startDate=2011-2-28&endDate=2011-3-1&eventName=Tip%20Calculated"; //String url = "http://www.weather.gov/xml/current_obs/KDFW.xml";
HttpWebRequest webreq = (HttpWebRequest)WebRequest.Create(url); WebResponse res = webreq.GetResponse(); using (Stream stream = res.GetResponseStream()) { StreamReader reader = new StreamReader(stream, Encoding.UTF8); while (reader.Peek() >= 0) { memoEdit1.Text += reader.ReadLine() + System.Environment.NewLine; } }
Я боролся с этой проблемой в течение 3 дней.Любая помощь приветствуется.
Я добавил следующее, и это исправило мою проблему.
request.Accept = "application/xml";
Надеюсь, это поможет кому-то еще.