zoukankan      html  css  js  c++  java
  • Stupid smart code: Solution

    The reason that I said that this is very stupid code?

    public static void WriteDataToRequest(HttpWebRequest req, string data) {     var byteCount = Encoding.UTF8.GetByteCount(data);     req.ContentLength = byteCount;     using (var dataStream = req.GetRequestStream())     {         if(byteCount <= 0x1000) // small size, just let the system allocate it         {             var bytes = Encoding.UTF8.GetBytes(data);             dataStream.Write(bytes, 0, bytes.Length);             dataStream.Flush();             return;         }          var buffer = new byte[0x1000];         var maxCharsThatCanFitInBuffer = buffer.Length / Encoding.UTF8.GetMaxByteCount(1);         var charBuffer = new char[maxCharsThatCanFitInBuffer];         int start = 0;         var encoder = Encoding.UTF8.GetEncoder();         while (start < data.Length)         {             var charCount = Math.Min(charBuffer.Length, data.Length - start);              data.CopyTo(start, charBuffer, 0, charCount);             var bytes = encoder.GetBytes(charBuffer, 0, charCount, buffer, 0, false);             dataStream.Write(buffer, 0, bytes);             start += charCount;         }         dataStream.Flush();     } }

    Because all of this lovely code can be replaced with a simple:

    public static void WriteDataToRequest(HttpWebRequest req, string data) {     req.ContentLength = Encoding.UTF8.GetByteCount(data);      using (var dataStream = req.GetRequestStream())     using(var writer = new StreamWriter(dataStream, Encoding.UTF8))     {         writer.Write(data);         writer.Flush();     } } 

    And that is so much better.

  • 相关阅读:
    Django-中间件
    Django-cookie与session
    Django-用户认证组件
    Django-forms组件
    Django-forms校验
    Django-ajax上传文件(request数据都可以在,request.body中找到)
    Django-Ajax传递json数据
    form表单文件上传
    Django-ROM(字段,参数)
    Django-模板的继承(母版,include)
  • 原文地址:https://www.cnblogs.com/shihao/p/2320679.html
Copyright © 2011-2022 走看看