WHere do I put my update class and handle request / response from HTTP web request?

I don’t know how to organize my code. Right now I just dumped everything in MainPage for testing. But what is the proper way to handle getting data from REST web service in Windows Phone 8? I have multiple pages that need to utilize the data that is returned.

    /// <summary>
/// State information for our BeginGetResponse async call
/// </summary>
public class UpdateState
{
    public HttpWebRequest AsyncRequest { get; set; }
    public HttpWebResponse AsyncResponse { get; set; }
}


public partial class MainPage : PhoneApplicationPage
{
    // Constructor
    public MainPage()
    {
        InitializeComponent();

        // Sample code to localize the ApplicationBar
        //BuildLocalizedApplicationBar();
    }

    private async void test()
    {

        var handler = new HttpClientHandler();
        if (handler.SupportsAutomaticDecompression)
        {
            handler.AutomaticDecompression = DecompressionMethods.GZip |
                                             DecompressionMethods.Deflate;
        }

        // form the URI
        UriBuilder fullUri = new UriBuilder("http://test/GetData?");
        fullUri.Query = "format=xml&param=test&dateFrom=20071225&dateTo=20080101";

        var httpClient = new HttpClient(handler);
        var str = await httpClient.GetStringAsync(fullUri.Uri);
        string test = "";
    }

    private void Button_Click(object sender, RoutedEventArgs e)
    {


        test();



        // form the URI
        UriBuilder fullUri = new UriBuilder("http://test/GetData?");
        fullUri.Query = "format=xml&param=test&dateFrom=20140124&dateTo=201425 ";

        // initialize a new WebRequest
        HttpWebRequest request = (HttpWebRequest)WebRequest.Create(fullUri.Uri);

        // set up the state object for the async request
        UpdateState state = new UpdateState();
        state.AsyncRequest = request;

        // start the asynchronous request
        request.BeginGetResponse(new AsyncCallback(HandleResponse),
            state);
    }

    /// <summary>
    /// Handle the information returned from the async request
    /// </summary>
    /// <param name="asyncResult"></param>
    private void HandleResponse(IAsyncResult asyncResult)
    {
        // get the state information
        UpdateState forecastState = (UpdateState)asyncResult.AsyncState;
        HttpWebRequest forecastRequest = (HttpWebRequest)forecastState.AsyncRequest;

        // end the async request
        forecastState.AsyncResponse = (HttpWebResponse)forecastRequest.EndGetResponse(asyncResult);

        Stream streamResult;

        string newCredit = "";
        string newCityName = "";
        int newHeight = 0;

        string XMLresult = string.Empty;

        try
        {

            // get the stream containing the response from the async call
            string type = forecastState.AsyncResponse.ContentType; 
            streamResult = forecastState.AsyncResponse.GetResponseStream();

            XMLresult = getXMLData(streamResult);

            // load the XML
            XElement xmlData = XElement.Parse(XMLresult);

            string t = "";

        }
        catch (FormatException)
        {
            // there was some kind of error processing the response from the web
            // additional error handling would normally be added here
            return;
        }

    }

Take a look at the Single Responsibility Principle. The idea is you would create separate classes for each chunk of code that does only one thing. These should all be in their own CS file by the way.

In your example, I would split out the Http Request and XML parsing into their own classes. The Xml Parsing code should return a Model class which represents the data structure you are expecting back. Once you get to that point, go back and review all your code. Ask yourself do each one of these files only do a single thing? If not, refactor your more to split out more classes.

Trang chủ Giới thiệu Sinh nhật bé trai Sinh nhật bé gái Tổ chức sự kiện Biểu diễn giải trí Dịch vụ khác Trang trí tiệc cưới Tổ chức khai trương Tư vấn dịch vụ Thư viện ảnh Tin tức - sự kiện Liên hệ Chú hề sinh nhật Trang trí YEAR END PARTY công ty Trang trí tất niên cuối năm Trang trí tất niên xu hướng mới nhất Trang trí sinh nhật bé trai Hải Đăng Trang trí sinh nhật bé Khánh Vân Trang trí sinh nhật Bích Ngân Trang trí sinh nhật bé Thanh Trang Thuê ông già Noel phát quà Biểu diễn xiếc khỉ Xiếc quay đĩa Dịch vụ tổ chức sự kiện 5 sao Thông tin về chúng tôi Dịch vụ sinh nhật bé trai Dịch vụ sinh nhật bé gái Sự kiện trọn gói Các tiết mục giải trí Dịch vụ bổ trợ Tiệc cưới sang trọng Dịch vụ khai trương Tư vấn tổ chức sự kiện Hình ảnh sự kiện Cập nhật tin tức Liên hệ ngay Thuê chú hề chuyên nghiệp Tiệc tất niên cho công ty Trang trí tiệc cuối năm Tiệc tất niên độc đáo Sinh nhật bé Hải Đăng Sinh nhật đáng yêu bé Khánh Vân Sinh nhật sang trọng Bích Ngân Tiệc sinh nhật bé Thanh Trang Dịch vụ ông già Noel Xiếc thú vui nhộn Biểu diễn xiếc quay đĩa Dịch vụ tổ chức tiệc uy tín Khám phá dịch vụ của chúng tôi Tiệc sinh nhật cho bé trai Trang trí tiệc cho bé gái Gói sự kiện chuyên nghiệp Chương trình giải trí hấp dẫn Dịch vụ hỗ trợ sự kiện Trang trí tiệc cưới đẹp Khởi đầu thành công với khai trương Chuyên gia tư vấn sự kiện Xem ảnh các sự kiện đẹp Tin mới về sự kiện Kết nối với đội ngũ chuyên gia Chú hề vui nhộn cho tiệc sinh nhật Ý tưởng tiệc cuối năm Tất niên độc đáo Trang trí tiệc hiện đại Tổ chức sinh nhật cho Hải Đăng Sinh nhật độc quyền Khánh Vân Phong cách tiệc Bích Ngân Trang trí tiệc bé Thanh Trang Thuê dịch vụ ông già Noel chuyên nghiệp Xem xiếc khỉ đặc sắc Xiếc quay đĩa thú vị
Trang chủ Giới thiệu Sinh nhật bé trai Sinh nhật bé gái Tổ chức sự kiện Biểu diễn giải trí Dịch vụ khác Trang trí tiệc cưới Tổ chức khai trương Tư vấn dịch vụ Thư viện ảnh Tin tức - sự kiện Liên hệ Chú hề sinh nhật Trang trí YEAR END PARTY công ty Trang trí tất niên cuối năm Trang trí tất niên xu hướng mới nhất Trang trí sinh nhật bé trai Hải Đăng Trang trí sinh nhật bé Khánh Vân Trang trí sinh nhật Bích Ngân Trang trí sinh nhật bé Thanh Trang Thuê ông già Noel phát quà Biểu diễn xiếc khỉ Xiếc quay đĩa
Thiết kế website Thiết kế website Thiết kế website Cách kháng tài khoản quảng cáo Mua bán Fanpage Facebook Dịch vụ SEO Tổ chức sinh nhật