我发送了一个 WebRequest,并在我的内容中得到了一个带有 XML 代码的字符串作为响应。
WebRequest request = WebRequest.Create("...");
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream dataStream = response.GetResponseStream();
StreamReader reader = new StreamReader(dataStream);
string responseFromServer = reader.ReadToEnd();
byte[] bytes = Convert.FromBase64String(responseFromServer);
Image image;
using (MemoryStream ms = new MemoryStream(bytes))
{
image = Image.FromStream(ms);
}
image.Save("File", System.Drawing.Imaging.ImageFormat.Gif);
问题是“Convert.FromBase64String(responseFromServer)”不能转换为base 64,因为响应是:
"<string xmlns="*LINK*"> 'content' </string>"
我可以删除这些标签,或复制内容吗?
我希望你能解决我的问题:) 感谢您的帮助,并为糟糕的英语感到抱歉 x)
我建议XmlReader
为此使用。
WebRequest request = WebRequest.Create("...");
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream dataStream = response.GetResponseStream();
//StreamReader reader = new StreamReader(dataStream);
//string responseFromServer = reader.ReadToEnd();
//byte[] bytes = Convert.FromBase64String(responseFromServer);
using (var reader = XmlReader.Create(dataStream))
{
reader.Read();
reader.Read();
string base64 = reader.Value;
byte[] bytes = Convert.FromBase64String(base64);
Image image;
using (MemoryStream ms = new MemoryStream(bytes))
{
image = Image.FromStream(ms);
image.Save("File", System.Drawing.Imaging.ImageFormat.Gif);
}
}
有一种方法可以直接在元素值中从 Base64 进行转换,但是您需要知道或多或少需要您阅读整个流才能做到这一点的事情(您可以查看编辑历史记录以了解我的工作那 ;)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句