Я пытаюсь отправить строку JSON с помощью POST на веб-службу, запущенную на Azure. Программа - приложение, созданное с помощью Xamarin Forms. Связь JSON с сервером в основном работает, но у меня проблемы с умляутами.Отправить umlauts в JSON, используя HTTPRequest
У меня есть класс «Тест»
public class Test
{
public string ä { get; set; }
}
, который я пытаюсь сериализовать в строку. Я использую JsonConvert для этого:
string postData = JsonConvert.SerializeObject(test);
В результате получается {"ä": "ä"}.
Когда я отправляю эту строку, я получаю сообщение об ошибке 400 Bad Request.
Интересно, что отправка этой строки с использованием плагина Firefox «Open HttpRequester» отлично работает.
Смена первого умлаута на "ae" ({"ae": "ä"}) работает.
Здесь # код C Я использую для отправки строки:
private void Send()
{
Uri uri = new Uri(serverPath);
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(uri);
request.Method = "POST";
request.ContentType = "application/json";
request.BeginGetRequestStream(new AsyncCallback(UploadWithRequestStream), request);
}
private void UploadWithRequestStream(IAsyncResult asynchronousResult)
{
Test test = new Test();
test.ä = "ä";
string postData = JsonConvert.SerializeObject(test); // {"ä":"ä"}
byte[] byteArray = Encoding.UTF8.GetBytes(postData);
HttpWebRequest request = (HttpWebRequest)asynchronousResult.AsyncState;
Stream uploadStream = request.EndGetRequestStream(asynchronousResult);
uploadStream.Write(byteArray, 0, postData.Length);
uploadStream.Flush();
request.BeginGetResponse(new AsyncCallback(GetResponseCallback), request);
}
private void GetResponseCallback(IAsyncResult asynchronousResult)
{
// 404 Bad Request
}
попробовать 'request.ContentType = "Content-тип:/JSON, кодировка = UTF-8"' – phuzi
Спасибо, но это Didn Помогите. – telandor