VB.NET WEB API 2中GetLogin接口调用失败,请求技术指导
解决ASP.NET Web API 2中GetLogin接口调用失败的问题
首先,你遇到的核心问题是URL参数的分隔符使用错误,另外我们也可以再确认下代码细节确保万无一失:
1. 修正URL的参数拼接方式
你当前的调用URL用了两个问号:
http://localhost:PORT/api/Login/GetLogin?Username=NAME?Password=PASSWORD
这是不符合HTTP规范的错误写法,多个查询参数之间应该用&来分隔,正确的URL格式应该是:
http://localhost:PORT/api/Login/GetLogin?Username=NAME&Password=PASSWORD
2. 优化控制器方法的参数绑定(可选但推荐)
虽然你的GetLogin方法参数默认会自动从查询字符串绑定,但为了代码可读性更强(尤其是团队协作场景),可以给参数加上[FromUri]特性明确指定绑定来源,修改后的代码如下:
<Route("GetLogin")> Public Function GetLogin(<FromUri> ByVal Username As String, <FromUri> ByVal Password As String) As IHttpActionResult ' 这里添加你的业务逻辑,比如验证用户名密码后返回对应结果 Return Ok(New With {.Success = True, .Message = "登录验证通过"}) End Function
3. 确认WebApiConfig配置的正确性
你的WebApiConfig配置是完全没问题的:既启用了属性路由(config.MapHttpAttributeRoutes()),又保留了默认路由规则,这两种路由模式可以共存,不会影响接口的正常调用。
测试验证
修改URL后,你可以直接在浏览器地址栏输入正确的URL,或者用Postman、curl等工具发送GET请求,应该就能正常访问GetLogin接口了。如果还是有问题,可以排查以下几点:
- 确认端口号是否和项目运行的端口一致
- 检查URL中的参数名是否和方法里的参数名完全匹配(HTTP参数名大小写不敏感,但建议保持一致避免混淆)
- 确认控制器类的
RoutePrefix确实设置为"api/Login"
内容的提问来源于stack exchange,提问作者PRCV1
相关产品推荐
相关产品推荐

