Я получаю \ r \ n и \ в своем ответе Xamarin, как этого избежать? - PullRequest
0 голосов
/ 10 июня 2019

Я отправляю RQ, используя xamarin и анализирую ответ JSON, но в своем ответе я получаю \r\n и \ перед каждым ".

Я знаю, что некоторые редакторы (например, NuSphere (PhPed)) имеютвозможность отключить добавление этих символов, но я не могу найти способ удалить его в Xamarin.

    public async Task Post_RequestAsync()
    {
        var request = new HttpRequestMessage();
        request.RequestUri = new Uri(GET_RQ_ENDPOINT);
        request.Method = HttpMethod.Post;
        request.Headers.Add("Accept", "application/json");
        var client = new HttpClient();
        HttpResponseMessage response = await 
      client.SendAsync(request).ConfigureAwait(continueOnCapturedContext: 
false);

        if (response.StatusCode == HttpStatusCode.OK)
        {
            string content = await response.Content.ReadAsStringAsync();

            Console.WriteLine(content);
        }
        else
        {
            Console.WriteLine("BAD!");
        }

        await Task.Delay(1);

    }

Это метод, который я использую, чтобы получить ответ.Я немного обрезал и удалял \r\n, но есть ли какое-нибудь элегантное решение для их удаления?

Ответы [ 2 ]

0 голосов
/ 11 июня 2019

Прежде всего, я предлагаю вам разобраться с этими проблемами на стороне сервера, которые обычно возникают, когда есть пробелы до или после строки данных.Если вы справитесь с этим на стороне сервера, это будет просто и раз и навсегда. Когда вы получите ответ, вам не нужно будет выполнять дополнительную обработку.

Конечно, если вы не можете справиться с этим со стороны сервера, вы можете удалить только все необходимые символы, заменив регулярное выражение следующим образом:

string content = await response.Content.ReadAsStringAsync();
var result = Regex.Replace(content, @"\t|\n|\r", "");

Кроме того: VS неесть эта функция, чтобы избавиться от этих символов. Этот вопрос относится к нашему коду на стороне сервера и на стороне клиента.

0 голосов
/ 10 июня 2019

Попробуйте использовать для этого регулярное выражение

string content = await response.Content.ReadAsStringAsync();
var result = Regex.Replace(content, @"\t|\n|\r", "");

, это должно удалить все необходимые символы.

...