Я пытаюсь исправить RestSharp, чтобы иметь возможность POST
XML с символами, отличными от ASCII, как POST
тело запроса.POSTing XML с символами, отличными от ASCII
Вот как это будет записано:
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
является строкой, а когда сервер на самом деле пытается разобрать запрос, все символы не-ASCII превращаются в ???
.
Теперь я делаю следующее:
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?