我正在尝试在我的Web API应用程序中调用外部托管的Web API。
在尝试使用Get()方法时,一切似乎都能正常工作。
但是,当我尝试实现$job_link_url
时,我收到了错误:
使用路径'api / External'和方法'GET'的多个操作。
我的控制器出了什么问题?
Get(int value)
我也尝试过以下方法,这似乎也引发了同样的错误:
public class ExternalController : ApiController
{
static string _address = "http://localhost:00000/api/Values";
private string result;
// GET api/values
public async Task<IEnumerable<string>> Get()
{
var result = await GetExternalResponse();
return new string[] { result, "value2" };
}
private async Task<string> GetExternalResponse()
{
var client = new HttpClient();
HttpResponseMessage response = await client.GetAsync(_address);
response.EnsureSuccessStatusCode();
var result = await response.Content.ReadAsStringAsync();
return result;
}
public async Task<string> Get(int value)
{
var result = await GetExternalResponse();
return result;
}
}
答案 0 :(得分:1)
当你这样做时
获取api / External / {id}
由于web api config中定义的默认路由,web api不确定是否调用不带参数的Get方法或带参数的Get方法
我建议使用属性路由来解决您的问题
[Route("api/External/Get")]
public async Task<IEnumerable<string>> Get()
[Route("api/External/Get/{id}")]
public async Task<string> Get(int value)