Выполнение PUT на клиента веб-службы с помощью этогоSystem.Text.Encoding.UTF8.GetBytes представляя странный характер
using System;
using System.IO;
using System.Net;
class Test
{
static void Main()
{
string xml = "<xml>...</xml>";
byte[] arr = System.Text.Encoding.UTF8.GetBytes(xml);
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create("http://localhost/");
request.Method = "PUT";
request.ContentType = "text/xml";
request.ContentLength = arr.Length;
Stream dataStream = request.GetRequestStream();
dataStream.Write(arr, 0, arr.Length);
dataStream.Close();
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
string returnString = response.StatusCode.ToString();
Console.WriteLine(returnString);
}
}
this SO answer Предоставлено
Если я смотрю на просьбы в стельку есть странный персонаж в конце моего запроса по почте </xml>
выглядит как квадрат [подозревают его спецификацию]
не уверен, как это познакомилось с моей строкой.
Значение по умолчанию 'UTF8.GetBytes' не включает спецификацию, и если вы запрашиваете одно, оно добавляется к фронту массива, а не к концу. Код, который вы отправили, не включает в себя «странный символ», поэтому происходит что-то еще. Вы делаете что-нибудь еще для «arr»? Скопируйте «странный символ» и посмотрите на него в шестнадцатеричном редакторе. –
Как вы создаете строку xml? Пример, если вы используете XmlWriter, тогда вам нужно установить следующее: 'new XmlWriterSettings {Encoding = new UTF8Encoding (false)}' – Jaex