2013-07-16 73 views
0

嗨我在C#中实现了下面的代码来捕获标题属性。 出于某种原因,我只获取名字的数据,其余字段显示为空。我知道他们有价值,但由于某种原因,他们显示为空。捕获http标题属性

// Load ServerVariable collection into NameValueCollection object. 
      System.Collections.Specialized.NameValueCollection headerdetails = Request.Headers; 

      List<string> requiredHeaders = new List<string>(); 
      requiredHeaders.Add("FirstName"); 
      requiredHeaders.Add("MiddleName"); 
      requiredHeaders.Add("LastName"); 
      requiredHeaders.Add("email"); 


      // Get names of all keys into a string array. 
      String[] arr1 = headerdetails.AllKeys; 
      for (int i = 0; i < arr1.Length; i++) 
      { 
       if (requiredHeaders.Contains(arr1[i])) 
       { 

        if (arr1[i] == "FirstName") 
        { 
         String[] arr2 = headerdetails.GetValues(arr1[i]); 
         for (int values = 0; values < arr2.Length; values++) 
         { 
          string firstname = Server.HtmlEncode(arr2[values]); 
          Session["firstName"] = firstname; 
         } 
        } 
        if (arr1[i] == "MiddleName") 
        { 
         String[] arr2 = headerdetails.GetValues(arr1[i]); 
         for (int values = 0; values < arr2.Length; values++) 
         { 
          string middlename = Server.HtmlEncode(arr2[values]); 
          Session["middleName"] = middlename; 
         } 
        } 
        if (arr1[i] == "LastName") 
        { 
         String[] arr2 = headerdetails.GetValues(arr1[i]); 
         for (int values = 0; values < arr2.Length; values++) 
         { 
          string lastname = Server.HtmlEncode(arr2[values]); 
          Session["lastName"] = lastname; 
         } 
        } 
        if (arr1[i] == "email") 
        { 
         String[] arr2 = headerdetails.GetValues(arr1[i]); 
         for (int values = 0; values < arr2.Length; values++) 
         { 
          string email = Server.HtmlEncode(arr2[values]); 
          Session["emailID"] = email; 
         } 
        } 
+0

您需要访问您的网站的客户这些标题?为什么?这些不是标准标题,你有什么机制来确保客户发送这些信息?对于实际的问题,你做了什么调试?您是否确保客户端在请求中发送这些头文件?当你通过这个代码服务器端时,它出现了哪些问题? – David

+0

是的客户端发送这些头。我也让他们在我的日志中被捕获。 –

回答

1

Alrite球员我想通了我的错误。 dum one,在循环中有一个response.redirect,因此我只得到了第一个名字。 PS:注意自我 - 不要长时间自我工作。

+0

我想说,你有没有检查过套管。您依赖于标题的情况与您定义的完全相同。您可能希望将您的平等改为不区分大小写的匹配。 –