HttpWebRequest.GetResponseStream 返回一个空字符串
本文关键字:一个 字符串 GetResponseStream 返回 HttpWebRequest | 更新日期: 2023-09-27 17:56:07
我一直在尝试各种可能的方法,使用 HttpWebRequest
从页面下载获取响应流,这在其他所有内容上都运行良好,但在此页面上没有。如您所见,返回的数据是一个 HTML,但它有一些我不是专家的元标记,但我试图获得这个块
{"error":4,"message":"Unsupported link format or unsupported hoster"}
似乎我不能,我试图将 GET 内容类型指定为"text/json",但没有任何帮助。
下面是我在浏览器上打开页面时返回的 HTML 内容,但在代码中它返回空字符串。
<html>
<meta style="visibility: hidden !important; display: block !important; width: 0px !important; height: 0px !important; border-style: none !important;"></meta>
<head></head>
<body>
<pre style="word-wrap: break-word; white-space: pre-wrap;">{"error":4,"message":"Unsupported link format or unsupported hoster"}
</pre>
</body>
</html>
编辑:
我尝试在本地主机上的页面中复制上面的相同html并尝试获取其内容并且它确实有效,IIS中是否有一些限制可以阻止获取内容?
你有证据表明问题出在客户端上吗?更合适的问题是:服务器为什么要发送这种奇怪的内容?客户端只接收服务器发送的任何内容。
我建议你调试服务器来找出答案,或者问一个新问题,其中包含你的服务器端代码并专门询问它。
尝试使用 WebRequest
类。在这里,您可以找到它的文档。
页面中有此示例:
// Create a request for the URL.
WebRequest request = WebRequest.Create ("[your_url]");
// If required by the server, set the credentials.
request.Credentials = CredentialCache.DefaultCredentials;
// Get the response.
HttpWebResponse response = (HttpWebResponse)request.GetResponse ();
// Display the status.
Console.WriteLine (response.StatusDescription);
// Get the stream containing content returned by the server.
Stream dataStream = response.GetResponseStream ();
// Open the stream using a StreamReader for easy access.
StreamReader reader = new StreamReader (dataStream);
// Read the content.
string responseFromServer = reader.ReadToEnd ();
// Display the content.
Console.WriteLine (responseFromServer);
// Cleanup the streams and the response.
reader.Close ();
dataStream.Close ();
response.Close ();
这将Console
打印该页面的 HTML 内容。
我遇到了同样的问题,原因是我以前将方法设置为 HEAD
,并且在以后的修订版中需要解析正文。