我的应用程序中有一个WebApi控制器
[HttpPost]
[Route("contracts/{exchangeGuid}/exchangeInfos")]
public IHttpActionResult UpdateContractExchangeInfo(Guid exchangeGuid,ExchangeDestination destination, ExchangeStatus exchangeStatus, string response)
{
//some login here
}
我需要使用HttpClient调用这个WebApi方法。 我试图使用表单数据进行PostAsync,但是在控制器上找不到这样的操作时出现错误
以下是我的请求示例
using (var client = new HttpClient(clientHandler))
{
client.BaseAddress = _baseAddress;
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/x-www-form-urlencoded"));
//Creating form content
var formContent = new FormUrlEncodedContent(new[]
{
new KeyValuePair<string, string>("destination", ((int)destination).ToString()),
new KeyValuePair<string, string>("exchangeStatus", ((int)exchangeStatus).ToString()),
new KeyValuePair<string, string>("response", ipResponse)
});
//Sending POST
HttpResponseMessage response = await client.PostAsync(string.Format("api/contracts/{0}/exchangeInfos", contractGuid), formContent);
//Some more logic here
}
有没有办法创建post请求并传递此参数而不更改WebApi操作?
答案 0 :(得分:0)
如果无法找到操作,我会在构建客户端之前先尝试访问端点,如果以调试模式启动web api项目为localhost,请尝试在浏览器中键入URL,看看是否可以点击端点使用您指定的相同参数。