У меня есть проект ASP.NET MVC 4, который, когда я делаю http-вызов с использованием web-запроса, заголовки не пройдут.WebRequest не будет передавать заголовки при использовании изнутри ASP.NET MVC-контроллера
Тот же самый код в LINQPad я могу установить данные в заголовках, такие как РАЗРЕШЕНИЯ и она отлично работает (я могу увидеть значение заголовков в Fiddler)
Однако, когда я делаю тот же код внутри моего контроллера MCV то заголовки не проходят. Как будто ASP.NET MVC переопределяет мои заголовки.
Любые предложения?
var client = WebRequest.Create(url);
client.Headers.Add(String.Format("Authorization:{0}", "Fun-Kitty"));
client.Headers.Add(String.Format("X-Requested-With:{0}", "PowerFlower"));
client.Method = "GET";
client.ContentType = "application/json";
HttpWebResponse resp;
using (resp = (HttpWebResponse)client.GetResponse())
{
if (resp.GetResponseStream() != null)
{
var status = resp.StatusDescription; // TODO
var reader = new StreamReader(resp.GetResponseStream());
var obj = reader.ReadToEnd();
}
}
UPDATE: Пожалуйста, обратите внимание, что заголовки правильно настройки (кроме случаев, когда вызывается из с MVC контроллер) - установка заголовка различные способы не имеет никакого влияния (т.е. работает в LINQPad, а не в MVC контроллер)
client.Headers.Set("Authorization", "PwrUp");
client.Headers["Authorization"] = "ababab11ab";
client.Headers.Add(String.Format("Authorization:{0}", "Fun-Kitty"));
Этот код отлично передает заголовки из LinqPad или Winforms/WPF App, но не из ASP.NET MVC Controller.
Я также заметил при осмотре заголовок, когда вызов сделан из контроллера MVC, следующее значение устанавливается (не уверен, если он не имеет ничего общего с ним, хотя):
X-Requested-With: XMLHttpRequest
Благодарим за отзыв. То, как я устанавливаю заголовки, в порядке, я удалил пробел только для теста, но те же результаты. Эти настройки (с пробелами или без них) отлично работают с Linqpad или Winform-приложением, просто не в ASP.NET MVC Controller. – schmoopy
У меня есть теория @schmoopy. Попробуйте сделать создание для 'HttpWebRequest':' var client = (HttpWebRequest) WebRequest.Create (url); ' – Haney
спасибо за предложение. Я пробовал это, но результаты те же. – schmoopy