Почему мой HttpWebRequest возвращает 400 неверный запрос?

Попробуйте раскомментировать эту строку в polyfill.ts.

/** IE9, IE10 and IE11 requires all of the following polyfills. **/
import 'core-js/es6/symbol';
import 'core-js/es6/object';
import 'core-js/es6/function';
import 'core-js/es6/parse-int';
import 'core-js/es6/parse-float';
import 'core-js/es6/number';
import 'core-js/es6/math';
import 'core-js/es6/string';
import 'core-js/es6/date';
import 'core-js/es6/array';
import 'core-js/es6/regexp';
import 'core-js/es6/map';
import 'core-js/es6/weak-map';
import 'core-js/es6/set';

Для меня теперь ионное приложение работает в Android 5.0 e 5.1

8
задан John Saunders 6 November 2012 в 19:15
поделиться

4 ответа

Во-первых, бросьте WebRequest в HttpWebRequest как это:

HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(@"http://www.youtube.com/");

Затем добавьте эту строку кода:

req.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)";
14
ответ дан 5 December 2019 в 06:24
поделиться

Возможно, у Вас есть выполнение прокси-сервера, и Вы не установили свойство Proxy HttpWebRequest?

3
ответ дан 5 December 2019 в 06:24
поделиться

Могло быть много причин для этой проблемы. У Вас больше есть детали о WebException?

Одна причина, с которой я столкнулся прежде, состоит в том, что у Вас есть плохая строка агента пользователя. Некоторые веб-сайты (Google, например) проверяют, что запросы прибывают из известных агентов пользователя, чтобы препятствовать тому, чтобы автоматизированные боты поразили свои страницы.

На самом деле можно хотеть проверить, что пользовательское соглашение для YouTube не устраняет Вас от выполнения, что Вы делаете. Если это делает, то то, что Вы делаете, может быть лучше выполнено путем прохождения через утвержденных каналов, таких как веб-сервисы.

4
ответ дан 5 December 2019 в 06:24
поделиться

Установите UserAgent и Referer в Вашем HttpWebRequest:

var request = (HttpWebRequest)WebRequest.Create(@"http://www.youtube.com/");
request.Referer = "http://www.youtube.com/"; // optional
request.UserAgent =
    "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; WOW64; " +
    "Trident/4.0; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; " +
    ".NET CLR 3.5.21022; .NET CLR 3.5.30729; .NET CLR 3.0.30618; " +
    "InfoPath.2; OfficeLiveConnector.1.3; OfficeLivePatch.0.0)";
try
{
    var response = (HttpWebResponse)request.GetResponse();
    using (var reader = new StreamReader(response.GetResponseStream()))
    {
        var html = reader.ReadToEnd();
    }
}
catch (WebException ex)
{
    Log(ex);
}
5
ответ дан 5 December 2019 в 06:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: