C# 从WebResponse读取响应的最简单方法
现在有了webResponse对象,读取其内容的最简单方法是什么?我只需在C# 从WebResponse读取响应的最简单方法,c#,C#,现在有了webResponse对象,读取其内容的最简单方法是什么?我只需在WebClient上使用异步方法即可——使用起来容易得多: private void RespCallback(IAsyncResult asynchronousResult) { try { WebRequest myWebRequest1 = (WebRequest)asynchronousResult.AsyncState; // End the Asynchrono
WebClient上使用异步方法即可
——使用起来容易得多:
private void RespCallback(IAsyncResult asynchronousResult)
{
try
{
WebRequest myWebRequest1 = (WebRequest)asynchronousResult.AsyncState;
// End the Asynchronous response.
WebResponse webResponse = myWebRequest1.EndGetResponse(asynchronousResult);
}
catch (Exception)
{
// TODO:Log the error
}
}
但要回答这个问题;假设它是文本,类似(注意您可能需要指定编码):
如果响应来自XML,那么这里有一种方法
using (var reader = new StreamReader(response.GetResponseStream()))
{
string result = reader.ReadToEnd(); // do something fun...
}
流必须使用using block进行包装。@Jaye否,您也可以稍后处理它。关于第二个选项,使用GetResponseStream的选项。我认为您还应该处理响应流,而不仅仅是StreamReader,例如,通过将代码包装到第二个“使用”结构中。在第一个“使用”中,您可以获取流对象的引用,在第二个中,您可以创建StreamReader。
using (var reader = new StreamReader(response.GetResponseStream()))
{
string result = reader.ReadToEnd(); // do something fun...
}
HttpWebRequest myReq = (HttpWebRequest)WebRequest.Create("https://www.yoururl.com");
WebResponse response = myReq.GetResponse();
Stream responseStream = response.GetResponseStream();
XmlTextReader reader = new XmlTextReader(responseStream);
while (reader.Read())
{
if (reader.NodeType == XmlNodeType.Text)
{
Console.WriteLine("{0}", reader.Value.Trim());
}
Console.ReadLine();
}
internal string Get(string uri)
{
using (WebResponse wr = WebRequest.Create(uri).GetResponse())
{
using (StreamReader sr = new StreamReader(wr.GetResponseStream()))
{
return sr.ReadToEnd();
}
}
}