Удалить /
в корне:
private static final String root = "http://localhost:8080/test/api";
RestTemplate принимает uriTemplate, если они начинаются с /
, поэтому ваш корень должен быть без него. если он не начинается с /
, он будет считаться полным URL
Это было в ответ на Ваш другой вопрос, который похож, он был удален...., точка все еще стоит.
Похож на классический Unicode к проблеме ASCII. Прием должен был бы найти, где это происходит.
.NET хорошо работает с Unicode, предполагая, что это сказало, что это - Unicode для начала (или оставленный в значении по умолчанию).
Мое предположение - то, что Ваше приложение получения не может обработать его. Так, я, вероятно, использовал бы ASCIIEncoder с EncoderReplacementFallback со Строкой. Пустой:
using System.Text;
string inputString = GetInput();
var encoder = ASCIIEncoding.GetEncoder();
encoder.Fallback = new EncoderReplacementFallback(string.Empty);
byte[] bAsciiString = encoder.GetBytes(inputString);
// Do something with bytes...
// can write to a file as is
File.WriteAllBytes(FILE_NAME, bAsciiString);
// or turn back into a "clean" string
string cleanString = ASCIIEncoding.GetString(bAsciiString);
// since the offending bytes have been removed, can use default encoding as well
Assert.AreEqual(cleanString, Default.GetString(bAsciiString));
Конечно, в былые времена, мы просто циклично выполнились бы, хотя и удаляют любые символы, больше, чем 127... хорошо, те из нас в США, по крайней мере.;)
Я смог понять это. В случае, если кто-то хочет знать ниже кода, который работал на меня:
ASCIIEncoding ascii = new ASCIIEncoding();
byte[] byteArray = Encoding.UTF8.GetBytes(sOriginal);
byte[] asciiArray = Encoding.Convert(Encoding.UTF8, Encoding.ASCII, byteArray);
string finalString = ascii.GetString(asciiArray);
Сообщите мне, существует ли более простой путь o выполнение его.