简体   繁体   中英

Problems with HttpRequest in c# for windows phone 8.1

I want to obtain a string response of this:

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

When I use this general function for obtain 1 for true connect and Size, but always return 1 as syze when my zip have 4k of size...

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

Any one can help me? Thanks in advance.

Solved! Just add:

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

This is for windows phone cache problems with httpwebrequest!

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM