1. C# / Говнокод #9241

    +120

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    Stream outS = resp.GetResponseStream();
    List<byte> bb = new List<byte>();
    while(true)
    {
        int dd = outS.ReadByte();
        if (dd == -1)
            break;
    
        bb.Add((byte) dd);
    }
    byte[] outB = new byte[bb.Count];
    bb.CopyTo(outB);
    
    string ss = Encoding.ASCII.GetString(outB);

    Чтение потока HttpWebResponse в строку.

    Запостил: Yagg, 27 Января 2012

    Комментарии (10) RSS

    • Ну так покажи как правильно )))
      Ответить
      • Костыльно создается список, который, не пользуясь, сразу обращают в массив, очень кошег'но, да.
        Ответить
      • Ну, во-первых, ReadBytes, во-вторых - ReadToEnd, в-третьих - byte не может быть меньше нуля. А в четвёртых... Привет TextReader.
        Ответить
        • Про меньше нуля мимо. Из ReadByte возвращается не байт, как это ни странно.
          Ответить
          • С C# общался 2 года назад, мелочи уже забылись
            Ответить
    • Ну, тут формально всё правильно. Но это не отменяет говнокодности.
      Впрочем, если тебе так интересно...
      Stream outS = resp.GetResponseStream();
      string ss;
      using(var rd = new StreamReader(outS, Encoding.ASCII))
      ss = rd.ReadToEnd();
      Ответить
    • - Как вывести двухбайтовый символ?
      - Берём первый байт, выводим. Затем берём второй байт, выводим.
      (с)
      Ответить

    Добавить комментарий