C# 如何在Web API中用空格传递url参数
我已经为我的应用程序使用ASP.NETWebAPI开发了web服务。查找从WEP API访问数据的代码C# 如何在Web API中用空格传递url参数,c#,asp.net-web-api,C#,Asp.net Web Api,我已经为我的应用程序使用ASP.NETWebAPI开发了web服务。查找从WEP API访问数据的代码 namespace ProjectTrackingServices.Controllers { [EnableCors(origins: "*", headers: "*", methods: "*")] public class PTEmployeesController : ApiController { [Route("api/ptemployees/{name:
namespace ProjectTrackingServices.Controllers
{
[EnableCors(origins: "*", headers: "*", methods: "*")]
public class PTEmployeesController : ApiController
{
[Route("api/ptemployees/{name:alpha}")]
public HttpResponseMessage Get(string name)
{
var employees = EmployeesRepository.SearchEmployeesByName(name);
HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.OK, employees);
return response;
}
}
}
因此,任何人都可以帮助如何在WEP API中使用空格传递url参数并返回成功状态。调用您的API的人应该确保他们按照http规范对url参数进行编码。如果调用方使用.net,则所有url参数都应通过静态方法传递。在上述情况下,这将把url变成
调用API时,由于它现在符合HTTP协议,WEB API将知道如何使用适当的空格对其进行解码。调用API的人应确保他们按照HTTP规范对URL参数进行编码。如果调用方使用.net,则所有url参数都应通过静态方法传递。在上述情况下,这将把url变成
调用API时,由于它现在符合HTTP协议,WEB API将知道如何使用适当的空格对其进行解码。问题在于路由中的constriant属性:
[Route("api/ptemployees/{name:alpha}")]
alpha
约束要求所有字符都是字母字符,不包括空格。您需要删除或更改约束(如果要更改约束,最简单的方法是使用regex
约束)
发件人:
alpha匹配大写或小写拉丁字母字符(a-z,a-z)
问题在于路由中的属性constriant:
[Route("api/ptemployees/{name:alpha}")]
alpha
约束要求所有字符都是字母字符,不包括空格。您需要删除或更改约束(如果要更改约束,最简单的方法是使用regex
约束)
发件人:
alpha匹配大写或小写拉丁字母字符(a-z,a-z)
在API映射中,您提到了{name:alpha},所以alpha不包含空格,所以请更改URL映射,然后尝试itDharmesh,是的。更改url映射时,它正在工作fine@Dharmesh无论您认为您的评论是简单的还是显而易见的,您都应该包含一个带有taht信息的答案,以明确这个Q有一个A,因此这对于您提到的API映射中的其他人非常有用{name:alpha}所以alpha不包含空格,所以请更改URL映射,然后尝试itDharmesh,是的。更改url映射时,它正在工作fine@Dharmesh无论你认为你的评论是简单的还是显而易见的,你都应该包括一个带有taht信息的答案,以明确这个Q有一个A,这样对其他人很有用答案已经在评论中了。我问那个发表评论的人,让科夫纳把它变成一个答案,但是,由于他没有回答,我自己也这么做了。URL编码在这种情况下不是问题。答案已经在一条评论中了。我问那个发表评论的人,让科夫纳把它变成一个答案,但是,由于他没有回答,我自己也这么做了。在这种情况下,URL编码不是问题。