我已经创建了一个 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/