【问题标题】:Problems with HttpRequest in c# for windows phone 8.1c# for windows phone 8.1中的HttpRequest问题
【发布时间】:2014-09-01 07:57:11
【问题描述】:

我想得到一个这样的字符串响应:

public async Task<string> CheckConnection(){
       //Declarations of Variables
        string result = "";

        HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
        request.ContinueTimeout = 4000;
        request.Credentials = CredentialCache.DefaultNetworkCredentials;

        //Add headers to request
        request.Headers["Type"] = "CHECK";
        request.Headers["Device"] = "1";
        request.Headers["Version"] = "0.000";
        request.Headers["Os"] = "WindowsPhone";

        HttpWebResponse response = (HttpWebResponse)await request.GetResponseAsync();

        if (response.StatusCode == HttpStatusCode.OK)
        {
            //To obtain response body
            Stream streamResponse = response.GetResponseStream();
            StreamReader streamRead = new StreamReader(streamResponse, Encoding.UTF8);

            result = streamRead.ReadToEnd();
            streamRead.Dispose();
        }

        return result;
    }

    public async Task<string> SizeFit()
    {
        //Declarations of Variables
        string result = "";

        HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
        request.Credentials = CredentialCache.DefaultNetworkCredentials;

        //Add headers to request
        request.Headers["Type"] = "SIZEFIT";
        request.Headers["Device"] = "1";
        request.Headers["Version"] = "0.000";
        request.Headers["Os"] = "WindowsPhone";

        HttpWebResponse response = (HttpWebResponse)await request.GetResponseAsync();
        if (response.StatusCode != null)
        {
            //To obtain response body
            Stream streamResponse = response.GetResponseStream();
            StreamReader streamRead = new StreamReader(streamResponse, Encoding.UTF8);

            result = streamRead.ReadToEnd();
            streamRead.Dispose();
        }

        return result;
    } 

当我使用这个通用函数来获取 1 以获得真正的连接和大小时,但当我的 zip 大小为 4k 时总是返回 1 作为 syze...

    public async Task<string> doSync()
    {
        //Declaration of variables
        string response = await CheckConnection();

        //When is 1, the checkConnection will connect then request Size of zip!
        if (response == "1")
        {
            response =  await SizeFit();
        }

        return response;
    }

任何人都可以帮助我吗?提前致谢。

【问题讨论】:

    标签: c# windows windows-phone-8


    【解决方案1】:

    解决了!只需添加:

     request.Headers["Cache-Control"] = "no-cache";
     request.Headers["Pragma"] = "no-cache";
    

    这是针对 httpwebrequest 的 windows phone 缓存问题!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-07
      • 1970-01-01
      • 2015-11-13
      • 2023-03-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多