Токен не получен для HttpGet - PullRequest
0 голосов
/ 18 июня 2020

У меня есть REST-сервер, а также REST-клиент. Я пытаюсь получить файл с REST-сервера. Код в клиенте следующий:

public async System.Threading.Tasks.Task<FileResponse> GetThingAsync(string token, System.Threading.CancellationToken cancellationToken)
    {
        var urlBuilder_ = new System.Text.StringBuilder();
        urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/GetThing/{token}");
        urlBuilder_.Replace("{token}", System.Uri.EscapeDataString(ConvertToString(token, System.Globalization.CultureInfo.InvariantCulture)));

        var client_ = _httpClient;
        try
        {
            using (var request_ = new System.Net.Http.HttpRequestMessage())
            {
                request_.Method = new System.Net.Http.HttpMethod("GET");
                request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/octet-stream"));

                PrepareRequest(client_, request_, urlBuilder_);
                var url_ = urlBuilder_.ToString();
                request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute);
                PrepareRequest(client_, request_, url_);

                var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false);
               ...

Код на сервере следующий:

 [HttpGet("GetThing/{token}")]
    public async Task<IActionResult> GetThing(string thingId)
    {            
        string tokens = thingId;  //line is reached but the 'thingId' is always empty!

Почему «thingId» не появляется на сервере? Должен ли я пройти другим путем?

1 Ответ

0 голосов
/ 19 июня 2020

Я обнаружил ошибку: на сервере имя параметра должно быть таким же, как в строке выше. Решением было переименование thingId в token.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...