相关疑难解决方法(0)

WebException.Response.GetResponseStream()限制为65536个字符

我正在尝试使用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(由于修剪)

是的,代码实际上是截断的.

.net c# webrequest

6
推荐指数
2
解决办法
4300
查看次数

来自Httpresponse的字符串未传递完整值

我非常需要帮助,

我正在创建一个Web请求并获取一个json字符串,Response.ContentLenth=2246但是当我在一个字符串中解析它只给出了几个100个字符时,我将其记录下来,它只获得小于964的值.字符串长度仍为2246但剩余值为只是(\0) null人物.它也Unterminated string passed in. (2246):在下一行给出错误

 FacebookFeed feed = sr.Deserialize<FacebookFeed>(data);
Run Code Online (Sandbox Code Playgroud)

如果响应流包含小于964个字符的字符,它可以正常工作.

以下是最后一行遇到的完整代码错误的摘录.

    System.Web.Script.Serialization.JavaScriptSerializer sr = new System.Web.Script.Serialization.JavaScriptSerializer();
    System.Net.HttpWebRequest req = (System.Net.HttpWebRequest)System.Net.HttpWebRequest.Create(@"https://graph.facebook.com/100000570310973_181080451920964");
    req.Method = "GET";
    System.Net.HttpWebResponse res = (System.Net.HttpWebResponse)req.GetResponse();

    byte[] resp = new byte[(int)res.ContentLength];
    res.GetResponseStream().Read(resp, 0, (int)res.ContentLength);
    string data = Encoding.UTF8.GetString(resp);
    FacebookFeed feed = sr.Deserialize<FacebookFeed>(data);
Run Code Online (Sandbox Code Playgroud)

给出的错误是

Unterminated string passed in. (2246): {"id":"100000570310973_1810804519209........ (with rest of data in the string data including null chars)
Run Code Online (Sandbox Code Playgroud)

以下是我的代码中使用的类的形状:

public class FacebookFeed
{
    public string id { get; set; …
Run Code Online (Sandbox Code Playgroud)

c# string null httpresponse

1
推荐指数
1
解决办法
2904
查看次数

标签 统计

c# ×2

.net ×1

httpresponse ×1

null ×1

string ×1

webrequest ×1