如何将byte []响应转换为有效的XDocument?

时间:2010-08-10 15:27:44

标签: c# .net webclient linq-to-xml httpwebresponse

<?xml version="1.0" encoding="utf-8"?>
<rsp stat="ok">
        <image_hash>cxmHM</image_hash>
        <delete_hash>NNy6VNpiAA</delete_hash>
        <original_image>http://imgur.com/cxmHM.png</original_image>
        <large_thumbnail>http://imgur.com/cxmHMl.png</large_thumbnail>
        <small_thumbnail>http://imgur.com/cxmHMl.png</small_thumbnail>
        <imgur_page>http://imgur.com/cxmHM</imgur_page>
        <delete_page>http://imgur.com/delete/NNy6VNpiAA</delete_page>
</rsp>

这是我将收到的典型回复。我尝试了以下但是我收到一个错误,告诉我非空白字符无法添加到内容中。

XDocument response = new XDocument(w.UploadValues("http://imgur.com/api/upload.xml", values));    

2 个答案:

答案 0 :(得分:10)

byte[] responseData = w.UploadValues("http://imgur.com/api/upload.xml", values);
string responseText = Encoding.ASCII.GetString(responseData);  //  ASCII assumed
XDocument respnseXml = XDocument.Parse(responseText); 

但错误也可能来自values

答案 1 :(得分:1)

我经历过最好在MemoryStream中加载字节并将其提供给XDocument。这样您就不必解决任何空白问题。

true