none
如何删除wp8 HttpWebRequest Headers中的某些信息 RRS feed

  • 问题

  • 在wp8里做http请求的时候,在Wireshark抓包看到,每次请求都会带上这三个属性Accept,UserAgent,Accept-Encoding

    如下Wireshark抓包

    POST /login HTTP/1.1
    Accept: */*
    Content-Length: 188
    Accept-Encoding: identity
    Content-Type: application/x-www-form-urlencoded
    User-Agent: NativeHost
    Host: 服务器地址
    Connection: Keep-Alive
    Cache-Control: no-cache

    提交到服务器的Post数据

    由于服务器对HTTP请求的Head做了判断,如出现了一些多余的head内容,则不管POST数据是否正确,都不通过

    我现在的需求是,删除HTTP请求时head中如下三条信息

    Accept: */*
    Accept-Encoding: identity
    User-Agent: NativeHost

    POST /login HTTP/1.1
    Content-Length: 188
    Content-Type: application/x-www-form-urlencoded
    Host: 服务器地址
    Connection: Keep-Alive

    提交到服务器的Post数据



    • 已编辑 zxyily38 2015年7月12日 4:44
    2015年7月12日 4:38

答案

  • @zxyily38,

    Sorry,没注意。Windows Phone 8只能用System.NET里面的HttpWebRequest 。https://msdn.microsoft.com/en-us/library/hh221581.aspx

    你在用HttpWebResponse的时候可以试试用HttpWebRequest.Headers来获取头 https://msdn.microsoft.com/en-us/library/system.net.httpwebresponse.headers(v=vs.110).aspx 

    在上文中有这样的代码:

    for(int i=0; i < myHttpWebResponse.Headers.Count; ++i)  
    					Console.WriteLine("\nHeader Name:{0}, Value :{1}",myHttpWebResponse.Headers.Keys[i],myHttpWebResponse.Headers[i]); 
    				// Releases the resources of the response.
    				myHttpWebResponse.Close(); 
    

    这是输出Header里面的条目的,你可以按下面的方式做些更改:

    foreach (string key in webResponse.Headers.Keys)
    {
        if (xxxxx)
        {
            var value = webResponse.Headers[key];
            //do things here
        }
    }


    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.

    2015年7月15日 2:29
    版主

全部回复