无法将字符串作为HTTPContent发送

时间:2019-03-29 13:25:33

标签: c# asp.net api

我已经创建了一个API,该API应该能够通过POST以及以字符串形式的请求正文连接到外部API。

我可以从Postman直接连接到API,而不会遇到麻烦。。但是它不能通过我自己的API来工作。

有什么想法吗?

这是Pastebin

private string EncodeExternalApiLink = "https://blabla.dk";
private string EncodeExternalApiLinkPostFilter = "searchstring/blabla/api/search";

[HttpPost("getdata/filtered")]
public async Task<IActionResult> GetDataFromExternalFiltered([FromBody] string filter)
{
    var filterString = new StringContent(filter);

    EncodeExternalToken token = GetExternalToken().Result;
    using (var client = new HttpClient())
    {
        client.BaseAddress = new Uri(EncodeExternalApiLink);

        client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("text/plain"));
        client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token.access_token);

        using (var response = await client.PostAsync(EncodeExternalApiLinkPostFilter, filterString))
        {
            return Json(response);
            if (response.IsSuccessStatusCode)
            {
                string content = await response.Content.ReadAsStringAsync();

                return Content(content, "application/json");
            }
            else
            {
                return NotFound();
            }
        }
    }
}

1 个答案:

答案 0 :(得分:0)

敬礼。您可能需要在基本地址EncodeExternalApiLink的末尾或EncodeExternalApiLinkPostFilter的开头添加“ /”。