代码之家  ›  专栏  ›  技术社区  ›  Anton Gogolev

使用非ASCII字符过帐XML

  •  2
  • Anton Gogolev  · 技术社区  · 14 年前

    我在试着修补 RestSharp 让它能够 POST 非ASCII字符的XML 岗位

    它是怎么写的:

    private void WriteRequestBody(HttpWebRequest webRequest) {
        if (HasBody) {
            webRequest.ContentLength = RequestBody.Length;
    
            var requestStream = webRequest.GetRequestStream();
            using (var writer = new StreamWriter(requestStream, Encoding.ASCII)) {
                writer.Write(RequestBody);
            }
        }
    }
    

    RequestBody ???

    现在,我执行以下操作:

    var encoding = Encoding.UTF8;
    
    webRequest.ContentLength = encoding.GetByteCount(RequestBody);
    
    var requestStream = webRequest.GetRequestStream();
    using (var writer = new StreamWriter(requestStream, encoding)) {
        writer.Write(RequestBody);
    }
    

    但它抛出 IOException Stream.Dispose() 说“在写入所有字节之前不能关闭流。”

    如何发布此XML?

    1 回复  |  直到 14 年前
        1
  •  0
  •   manuel aldana    14 年前

    也许你计算内容长度的地方不对?