docs: def _write_body(name, message, stream, encoder, strict=False):
      """
      Write AMF message body.
  
      @param name: The name of the request.
      @param message: The AMF L{Message}
      @type stream: L{BufferedByteStream<pyamf.util.BufferedByteStream>}
      @param encoder: An AMF0 encoder.
      @param strict: Use strict encoding policy. Default is `False`.
      """
      def _encode_body(message):
          if isinstance(message, Response):
              encoder.writeElement(message.body)
  
              return
  
          stream.write('\x0a')
          stream.write_ulong(len(message.body))
          for x in message.body:
              encoder.writeElement(x)
  
      if not isinstance(message, (Request, Response)):
          raise TypeError("Unknown message type")
  
      target = None
  
      if isinstance(message, Request):
          target = unicode(message.target)
      else:
          target = u"%s%s" % (name, _get_status(message.status))
  
      target = target.encode('utf8')
  
      stream.write_ushort(len(target))
      stream.write_utf8_string(target)
  
      response = 'null'
  
      if isinstance(message, Request):
          response = name
  
      stream.write_ushort(len(response))
      stream.write_utf8_string(response)
  
      if not strict:
          stream.write_ulong(0)
          _encode_body(message)
  
          return
  
      write_pos = stream.tell()
      stream.write_ulong(0)
      old_pos = stream.tell()
  
      _encode_body(message)
      new_pos = stream.tell()
  
      stream.seek(write_pos)
      stream.write_ulong(new_pos - old_pos)
      stream.seek(new_pos)