2013-10-14 3 views
0

Я пытаюсь создать веб-сервис. Я успешно могу отправить запрос HttpClient на веб-службу и получить ответ.Как читать HttpHeaders в WebService отправить HttpClient

Что я хочу?

Я отправляю некоторые HttpHeaders с запросом POST, например userAgent, или любым CustomHeader. Этот заголовок я хочу прочитать в методе webservice. Я не знаю, как получить список заголовков?

Я создал веб-сервис в C#.

public class Service1 :IService1{ 
      public string putData(Stream data) 
      { 
     string response = string.Empty; 
     try 
     { 
      HttpContext ctx = HttpContext.Current; 
      string headerValue = ctx.Request.Headers["tej"];    
      StreamReader reader = new StreamReader(data); 
      string xmlString = reader.ReadToEnd(); 
      StringReader sr = new StringReader(xmlString); 
      MySqlCommand cmd = new MySqlCommand(); 
      DataSet ds = new DataSet(); 

      ds.ReadXml(sr); 
      //my logic here.... 

      return "Passed"; 
     } 
     catch (Exception ex) 
     { 
      return "Failed"; 
     } 
    } 
} 

public interface IService1 
{ 
    [OperationContract] 
    [WebInvoke(Method = "POST", ResponseFormat = WebMessageFormat.Xml, BodyStyle =     WebMessageBodyStyle.Wrapped, UriTemplate = "putdata")] 
    string putData(Stream sDatabase); 
} 

ответ

0

Попробуйте использовать объект WebOperationContext.Current.IncomingRequest.

public class Service1 :IService1 
    { 
       public string putData(Stream data) 
       { 
        try 
        { 
         //reading headers 
         IncomingWebRequestContext request = WebOperationContext.Current.IncomingRequest; 
         WebHeaderCollection headers = request.Headers; 
         foreach (string headerName in headers.AllKeys) 
         { 
          Console.WriteLine(headerName + ": " + headers[headerName]); 
         } 

         //---- rest of the code 
        } 
        catch (Exception ex) 
        { 
         return "Failed"; 
        } 
       } 
     } 
+0

привет спасибо за ответ, но я получаю null от ctx. Что я делаю неправильно. –

+1

Если вы используете WCF для создания WebService, используйте WebOperationContext.Current.IncomingRequest.Headers http://stackoverflow.com/questions/18877591/how-to-read-http-request-headers-in-a-wcf-web- service – mit

+0

Большое спасибо за его работу. можете ли вы отредактировать свой исходный ответ, чтобы я мог правильно ответить на ваш вопрос :) –

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