0

我正在尝试创建一个网络服务。我成功地将 HttpClient 请求发送到 Web 服务并获得响应。

我想要的是 ?

我正在发送一些带有 POST 请求的 HttpHeaders,例如 userAgent 或任何 CustomHeader。我想在 webservice 方法中阅读的那个 Header。我不知道如何获取标题列表?

我在 C# 中创建了 web 服务。

   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); 
}
4

1 回答 1

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";
                   }
                }
      }
于 2013-10-14T07:03:05.673 回答