C# 将变量发送到Web API方法
我在ValuesController类中使用以下方法设置了一个基本的MVC web API项目-C# 将变量发送到Web API方法,c#,asp.net-mvc,asp.net-web-api,C#,Asp.net Mvc,Asp.net Web Api,我在ValuesController类中使用以下方法设置了一个基本的MVC web API项目- // GET api/values/5 public string Get(int id) { return "Success!"; } 把这个打给客户,就像- client.BaseAddress = new Uri("http://localhost:12345/"); client.DefaultRequestHeaders.Accept.Clear(); client.Defaul
// GET api/values/5
public string Get(int id)
{
return "Success!";
}
把这个打给客户,就像-
client.BaseAddress = new Uri("http://localhost:12345/");
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
HttpResponseMessage response = await client.GetAsync("api/values/5");
if (response.IsSuccessStatusCode)
{
result = await response.Content.ReadAsStringAsync();
}
我是相对较新的MVC,但是我正在尝试修改此方法,以接受在数据库调用中使用的字符串变量。比如说-
// GET api/values/number/house/street
public string Get(string no, string house, string street)
{
// use variables
return "Success!";
}
HttpResponseMessage response = await client.GetAsync("api/values/" + no + house + street);
if (response.IsSuccessStatusCode)
{
result = await response.Content.ReadAsStringAsync();
}
然后客户会说-
// GET api/values/number/house/street
public string Get(string no, string house, string street)
{
// use variables
return "Success!";
}
HttpResponseMessage response = await client.GetAsync("api/values/" + no + house + street);
if (response.IsSuccessStatusCode)
{
result = await response.Content.ReadAsStringAsync();
}
我基本上是在尝试将API用作Web服务,但是不确定如何修改它以这样的方式工作
当我尝试上面的代码时,它返回了
错误请求
您可能还没有设置到WebApi服务的路由。
查看此资源,了解如何进行设置:
编辑:或者,等等!如果可能的话,打电话给你的服务是错误的。如果查看api方法定义,注释会告诉您url应如下所示:
GET api/values/number/house/street
虽然看起来你把它叫做:
GET api/values/NoHouseStreet
因此,值之间没有斜杠。我猜想,如果您将调用的url更改为以下内容,那么应该可以正常工作:
HttpResponseMessage response = await client.GetAsync("api/values/" + no + "/" + house + "/" + street);
我认为你的第一个假设是正确的,因为我尝试了第二个,但失败了:(,我将尝试您的第一个解决方案,如果我能使用它,我将标记为正确谢谢您的输入。很高兴它能使用。但只是为了完整性。问题是缺少斜杠或路由还是两者都有?是路由错误,也是我对MVC缺乏了解。我还必须创建自定义模型和控制器,现在我能够重新请求完美地使用和发送数据。我现在意识到为什么asmx web服务应该被认为是不推荐的。MVC是很棒的东西。