post方法后解析xml返回

时间:2011-07-21 03:37:34

标签: windows-phone-7 post httpwebrequest xml-parsing

我使用post将参数发布到服务器并以字符串形式获取结果,如何解析该结果并将其绑定到listbox?看来(由于某种原因)我无法将字符串输出到textblock或messagebox。对于解析xml,我使用XDocument(在参数中取流) 我的代码如下:

    private static void GetRequestStreamCallback(IAsyncResult asynchronousResult)
    {
        string post = "track=love";
//       post = HttpUtility.UrlEncode(post);
        Console.WriteLine(post);
        try
        {
            HttpWebRequest request = (HttpWebRequest)asynchronousResult.AsyncState;

            // End the operation
            Stream postStream = request.EndGetRequestStream(asynchronousResult);

            // Convert the string into a byte array.
            byte[] postBytes = Encoding.UTF8.GetBytes(post);

            // Write to the request stream.
            postStream.Write(postBytes, 0, postBytes.Length);
            postStream.Close();

            // Start the asynchronous operation to get the response
            request.BeginGetResponse(new AsyncCallback(GetResponseCallback), request);
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.ToString());
        }
    }

    private static void GetResponseCallback(IAsyncResult asynchronousResult)
    { 

            HttpWebRequest request = (HttpWebRequest)asynchronousResult.AsyncState;

            // End the operation
            HttpWebResponse response = (HttpWebResponse)request.EndGetResponse(asynchronousResult);

            HttpStatusCode rcode = response.StatusCode;
            Stream streamResponse = response.GetResponseStream(); 
            StreamReader streamRead = new StreamReader(streamResponse);

        //THIS ALWAYS RETURN "" VALUE, EXPECT TO RETURN XML STRING               
            string str = streamRead.ReadToEnd();

            //Console.WriteLine(responseString);
            // Close the stream object
            streamResponse.Close();
            streamRead.Close();
            // Release the HttpWebResponse
            response.Close();             
    }

我希望使用XDocument来解析这样的数据:

 XDocument xdoc = XDocument.Load(str);

                    var data = from query in xdoc.Descendants("tracks").Elements("item")
                               select new searchResult
                               {
                                   artist = (string)query.Element("artist"),
                                   album = (string)query.Element("album"),
                                   track = (string)query.Element("track"),
                              //   artistA = (string)query.Element("artists").Element("artist"),
                               };
                    listBox1.ItemsSource = data;

                    var data1 = from query in xdoc.Descendants("artists").Elements("item")
                               select new searchResult
                               {
                                 artistA = (string)query.Element("artist"),
                               };
                    listBox2.ItemsSource = data1;

0 个答案:

没有答案