首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >windows 8.1 HttpRequest在c#中的问题

问windows 8.1 HttpRequest在c#中的问题
EN

Stack Overflow用户
提问于 2014-09-01 07:57:11
回答 1查看 1K关注 0票数 0

我想获得这方面的字符串响应:

代码语言:javascript
复制
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作为真正的连接和大小,但始终返回1作为syze,当我的拉链有4k的大小.

代码语言:javascript
复制
    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;
    }

有人能帮我吗?提前谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-09-03 07:48:59

解决了!只需添加:

代码语言:javascript
复制
 request.Headers["Cache-Control"] = "no-cache";
 request.Headers["Pragma"] = "no-cache";

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25601227

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档