Недействительный запрос, когда я указываю на свой URL-адрес http: // localhost: 59185 / api / values ... надеясь вернуть свой токен доступа, вместо этого получаю ошибку

Фэй

У меня есть проект веб-API в Visual Studio, где я перенаправляю веб-URL на свой локальный хост, у меня есть класс модели и контроллер значений, и в настоящее время я пытаюсь получить ответ от моего API.

Изображение почтальона (как почтальон принимал учетные данные) Нажмите здесь

При запуске этого проекта я получаю сообщение об ошибке на моем URL -> http: // localhost: 59185 / api / values

Сообщение об ошибке:

<string xmlns="http://schemas.microsoft.com/2003/10/Serialization/">
{"error":"invalid_request","error_description":"grant_type is required for issuance"}
</string>

Он говорит мне, что для выдачи требуется grant_type, но я четко определил его своим классом Valuescontroller ..

using APICredential.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
using System.Web.Http;
using System.Web.Script.Serialization;

namespace APICredential.Controllers
{
    [RoutePrefix("api")]
    public class ValuesController : ApiController
    {

        [HttpGet, Route("values")]
        public async Task<string> Post()
        {
            Credentials cred = new Credentials()
            {

                username = "admin@encompass:BE11200822",
                password = "S*******",
                grant_type = "password", //Gran_type Identified here
                client_id = "gpq4sdh",
                client_secret = "secret",
                scope = "lp"
            };

            try {
                using (HttpClient client = new HttpClient())
                {
                    client.BaseAddress = new Uri("https://api.elliemae.com/oauth2/");

                    HttpRequestMessage request = new HttpRequestMessage
                    (HttpMethod.Post, "v1/token")
                    {
                        Content = new StringContent(new JavaScriptSerializer().Serialize(cred), Encoding.UTF8, "application/x-www-form-urlencoded")
                    };

                    HttpResponseMessage response = await client.SendAsync(request);

                    //for now, see what response gets you and adjust your code to return the object you need, if the api is returning a serialized json string.. then we can return a string here... like so

                    string result = await response.Content.ReadAsStringAsync();

                    return result;

                }
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
        }


        [HttpGet, Route("values/{id}")]
        public string Get(int id)
        {
            return "Nice! At least we got this one working, Fay... the Id value you entered is: " + id.ToString();
        }
amura.cxg

Глядя на снимок экрана Postman, похоже, что вы неправильно передаете контент в API. Должно получиться примерно так:

namespace APICredential.Controllers
{
    [RoutePrefix("api")]
    public class ValuesController : ApiController
    {

        [HttpGet, Route("values")]
        public async Task<string> Post()
        {
            using (HttpClient client = new HttpClient())
            {
                client.BaseAddress = new Uri("https://api.elliemae.com/oauth2/");



                var parameters = new Dictionary<string, string>()
                {
                    {"username", "admin@encompass:BE11200822"},
                    {"password ", "S*******"},
                    {"grant_type", "password"}, //Gran_type Identified here
                    {"client_id", "gpq4sdh"},
                    {"client_secret", "secret"},
                    {"scope", "lp"}
                };

                HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Post, "v1/token")
                {
                    Content = new FormUrlEncodedContent(parameters)
                };

                HttpResponseMessage response = await client.SendAsync(request);

                string result = await response.Content.ReadAsStringAsync();

                return result;
            }
        }
    }
}

Эта статья взята из Интернета, укажите источник при перепечатке.

Если есть какие-либо нарушения, пожалуйста, свяжитесь с[email protected] Удалить.

Отредактировано в
0

я говорю два предложения

0обзор
Войти в системуУчаствуйте в комментариях

Статьи по теме

TOP список

  1. 1

    Распределение Рэлея Curve_fit на Python

  2. 2

    How to click an array of links in puppeteer?

  3. 3

    (fields.E300) Поле определяет связь с моделью, которая либо не установлена, либо является абстрактной.

  4. 4

    Modbus Python Schneider PM5300

  5. 5

    Elasticsearch - Нечеткий поиск не дает предложения

  6. 6

    Как добавить Swagger в веб-API с поддержкой OData, работающий на ASP.NET Core 3.1

  7. 7

    TypeError: store.getState não é uma função. (Em 'store.getState ()', 'store.getState' é indefinido, como posso resolver esse problema?

  8. 8

    Перебирайте несколько столбцов в фрейме данных Panda и находите уникальные значения подсчета

  9. 9

    Проблемы со сборкой Python Image Registration Toolkit

  10. 10

    В типе Observable <unknown> отсутствуют следующие свойства из типа Promise <any>.

  11. 11

    Vue js CLI 2 импортирует и использует плагин javascript

  12. 12

    Автозаполнение с Java, Redis, Elastic Search, Монго

  13. 13

    Текущая ветка не настроена для извлечения В конфигурации не найдено значение для ключа branch.master.merge

  14. 14

    SQL Вычтите две строки друг от друга в одном столбце, чтобы получить результат

  15. 15

    How to normalize different curves drawn with geom = "step" when using stat_summary

  16. 16

    Merging legends in plotly subplot

  17. 17

    ViewPager2 мигает / перезагружается при смахивании

  18. 18

    Vue 2 / Vue CLI 3: создание асинхронных однофайловых компонентов

  19. 19

    как я могу удалить vue cli 2?

  20. 20

    Ошибка «LINK: фатальная ошибка LNK1123: сбой при преобразовании в COFF: файл недействителен или поврежден» после установки Visual Studio 2012 Release Preview

  21. 21

    Single legend for Plotly subplot for line plots created from two data frames in R

популярныйтег

файл