c# - 无法将字符串作为 HTTPContent 发送

标签 c# asp.net 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();
            }
        }
    }
}

最佳答案

致意。您可能需要在基址 EncodeExternalApiLink 的末尾或 EncodeExternalApiLinkPostFilter 的开头添加“/”。

关于c# - 无法将字符串作为 HTTPContent 发送,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55418452/

相关文章:

c# - .Net 6 Ocelot 18.0.0 导航到网关 URL 时返回错误 404

c# - 将数组转换为 ObservableCollection

c# - 为什么 ValueMember 会覆盖一个空的 DisplayMember

c# - 文本框和标签数组如何在 C# 中的提交方法中获取值

javascript - 如何从模态对话框下载文件并回发给自身?

asp.net - FileUpload.hasFile 始终为 False

c# - 用单个值替换所有出现的字符串(在数组中)

c# - 通用异步查询类

api - 使用 Facebook Connect 登录/创建帐户时,如何使用我自己网站的 API 进行身份验证?

c# - 有关如何清理此 API 的建议