HttpWebRequest request = WebRequest.Create("http://google.com") as HttpWebRequest;
request.Accept = "application/xrds+xml";
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
WebHeaderCollection header = response.Headers;
Run Code Online (Sandbox Code Playgroud)
谷歌在这里返回文字.怎么看?
STW*_*STW 106
你"application/xrds+xml"给我的问题,我收到的内容长度为0(没有回复).
删除后,您可以使用访问响应response.GetResponseStream().
HttpWebRequest request = WebRequest.Create("http://google.com") as HttpWebRequest;
//request.Accept = "application/xrds+xml";
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
WebHeaderCollection header = response.Headers;
var encoding = ASCIIEncoding.ASCII;
using (var reader = new System.IO.StreamReader(response.GetResponseStream(), encoding))
{
string responseText = reader.ReadToEnd();
}
Run Code Online (Sandbox Code Playgroud)
Sam*_*Sam 71
接受的答案没有正确处理WebResponse或解码文本.此外,还有一种在.NET 4.5中执行此操作的新方法.
要执行HTTP GET并读取响应文本,请执行以下操作.
public static string GetResponseText(string address)
{
var request = (HttpWebRequest)WebRequest.Create(address);
using (var response = (HttpWebResponse)request.GetResponse())
{
var encoding = Encoding.GetEncoding(response.CharacterSet);
using (var responseStream = response.GetResponseStream())
using (var reader = new StreamReader(responseStream, encoding))
return reader.ReadToEnd();
}
}
Run Code Online (Sandbox Code Playgroud)
private static readonly HttpClient httpClient = new HttpClient();
public static async Task<string> GetResponseText(string address)
{
return await httpClient.GetStringAsync(address);
}
Run Code Online (Sandbox Code Playgroud)
Jon*_*eet 10
我刚试过这个,它给了我200 OK回复,但没有内容 - 内容长度为0.你确定它会给你内容吗?无论如何,我会假设你真的有内容.
获取实际文本依赖于知道编码,这可能很棘手.它应该在Content-Type标题中,但是你必须解析它等等.
但是,如果这实际上是 XML(例如来自" http://google.com/xrds/xrds.xml "),则会更容易.只需将XML加载到内存中,例如通过LINQ to XML.例如:
using System;
using System.IO;
using System.Net;
using System.Xml.Linq;
using System.Web;
class Test
{
static void Main()
{
string url = "http://google.com/xrds/xrds.xml";
HttpWebRequest request = (HttpWebRequest) WebRequest.Create(url);
XDocument doc;
using (WebResponse response = request.GetResponse())
{
using (Stream stream = response.GetResponseStream())
{
doc = XDocument.Load(stream);
}
}
// Now do whatever you want with doc here
Console.WriteLine(doc);
}
}
Run Code Online (Sandbox Code Playgroud)
如果内容是XML,得到的结果为XML对象模型(无论是XDocument,XmlDocument或XmlReader)可能比具有纯文本更有价值.
| 归档时间: |
|
| 查看次数: |
164373 次 |
| 最近记录: |