Jas*_*son 6 .net c# webrequest
我正在尝试使用HttpWebRequest和HttpWebResponse从网页中检索HTML代码.
response = (HttpWebResponse)request.GetResponse();
...
Stream stream = response.GetResponseStream();
Run Code Online (Sandbox Code Playgroud)
响应对象的ContentLength值为106142.当我查看流对象时,它的长度为65536.使用ReadToEnd()使用StreamReader读取流时,仅返回前65536个字符.
我怎样才能获得整个代码?
编辑:
使用以下代码段:
catch (WebException ex)
{
errorMessage = errorMessage + ex.Message;
if (ex.Response != null) {
if (ex.Response.ContentLength > 0)
{
using (Stream stream = ex.Response.GetResponseStream())
{
using (StreamReader reader = new StreamReader(stream))
{
string pageOutput = reader.ReadToEnd().Trim();
Run Code Online (Sandbox Code Playgroud)
ex.Response.ContentLength = 106142
ex.Response.GetResponseStream().长度= 65536
stream.Length = 65536
pageOutput.Length = 65534(由于修剪)
是的,代码实际上是截断的.
小智 7
您可以在System.Net中找到该主题的答案.HttpWebResponse.GetResponseStream()在WebException中返回截断的主体
您必须管理HttpWebRequest对象并更改DefaultMaximumErrorResponseLength属性.例如 :
HttpWebRequest.DefaultMaximumErrorResponseLength = 1048576;
Run Code Online (Sandbox Code Playgroud)
Jas*_*son -1
对异常返回的 HttpWebResponse 调用 GetResponseStream() 方法时似乎出现问题。当没有例外时,一切都会按预期进行。
我想从服务器返回的错误中获取 HTML 代码。
我想我不得不希望错误不超过 65536 个字符......
| 归档时间: |
|
| 查看次数: |
4300 次 |
| 最近记录: |