我是VS Code环境的新手。我正在开发VS代码中的Web API,稍后将从客户端应用程序中使用它。以下代码块似乎没有执行,所以我想检查它是否完全击中!
//GET: pwapi/plants/10076/features
[HttpGet("{id}, {sectionArray}")]
public async Task<string> Get(int id, string sectionArray){
var url="https://www.domain.com/search?apikey=<apikey>§ions="+sectionArray+"&plantid="+id;
using(var client = new HttpClient()){
client.BaseAddress=new Uri(url);
client.DefaultRequestHeaders.Accept.Clear();
var response=await client.GetAsync(url);
//will throw an exception if not successful
response.EnsureSuccessStatusCode();
string content = await response.Content.ReadAsStringAsync();
//return await Task.Run(() => JsonObject.Parse(content));
return content;
}
}
上述方法的网址为http://localhost:5000/pwapi/plants/10076/features
我有重载的方法,工作正常:
[HttpGet("{id}")]
public async Task<string> Get(int id){
var url="https://www.domain.com/list?apikey=<apikey>";
using(var client = new HttpClient()){
client.BaseAddress=new Uri(url);
client.DefaultRequestHeaders.Accept.Clear();
var response=await client.GetAsync(url);
//will throw an exception if not successful
response.EnsureSuccessStatusCode();
string content = await response.Content.ReadAsStringAsync();
//return await Task.Run(() => JsonObject.Parse(content));
return content;
}
}
上述方法的网址为http://localhost:5000/pwapi/plants/10076
三个问题: 1.我如何调试代码? 2.如果无法进行调试(到目前为止,我已经看到调试只适用于客户端脚本,我可能是错的),有什么方法可以知道我在哪里做错了? 如果没有其他选择,请告诉我为什么这个方法没有打击。
答案 0 :(得分:2)
如果您注意到Get过载的路由前缀,则您使用逗号而不是斜杠,这会使路由无效,因此您的端点永远不会被命中。请将路由前缀更改为:
[HttpGet("{id}/{sectionArray}")]
至于调试端点,您只需要在线上按F9或单击要调试的代码行左侧来设置断点。