Маршрут localhost не работает, должен возвращать JSON обратно при поиске по URL

Мои коллеги-программисты, у меня в основном есть этот метод async Get (), который успешно читает данные Json, но при нахождении по маршруту -> localhost: 59185 / api / encompass / data я получаю сообщение:

No HTTP resource was found that matches the request URL 'http://localhost:59185/api/encompass/data'.
</Message>

Я очень надеялся, что он вернет мой JSON, особенно когда при отладке кода он сидит в строке res внизу

кто-нибудь знает, почему он не возвращается, Json даже думал, что он сидит в «res»?

Контроллер:

    [HttpGet, Route("encompass/data")]
    public async Task<string> Get(string Accesstoken)
    {
         string res = "";
         using (var client = new HttpClient())
        {
            Accesstoken = Accesstoken.Substring(17, 28);
            client.BaseAddress = new Uri("https://api.elliemae.com/");
            client.DefaultRequestHeaders.Add("Authorization", "Bearer " + Accesstoken);
            var response = client.GetAsync("encompass/v1/loans/ea7c29a6-ee08-4816-99d2-fbcc7d15731d").Result;
            using (HttpContent content = response.Content)
            {
                // ... Read the string.
                Task<string> result = content.ReadAsStringAsync();
                res = result.Result;
            }

            return res; //<- this is not returning the JSon thats sitting in here 
        }

    }

person fay    schedule 10.06.2019    source источник


Ответы (1)


Фей, токен-носитель, используемый в заголовке вашего метода Get, должен быть в кодировке Base64

См. [How-do-i-encode-and-decode-a-base64-string] [1]

Я добавил для токена значение Bearer HEADER.

  [HttpGet, Route("values/get")]
        public async Task<string> Get(string resulted)
        {

            string res = "";
            using (var client = new HttpClient())
            {
                // HTTP POST

                client.BaseAddress = new Uri("https://api.elliemae.com/");          
                client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
                client.DefaultRequestHeaders.Add("Authorization", "Bearer " + Convert.ToBase64String(System.Text.ASCIIEncoding.ASCII.GetBytes(resulted)));
                var response = client.GetAsync("/encompass/v1/loans/{ea7c29a6-ee08-4816-99d2-fbcc7d15731d}?Authorization=Bearer "+resulted+"&Content-Type=application/json").Result;

                using (HttpContent content = response.Content)
                {
                    // ... Read the string.
                    Task<string> result = content.ReadAsStringAsync();
                    res = result.Result;
                }
            }
            return res;
        }
person Mr Slim    schedule 21.06.2019