为了账号安全,请及时绑定邮箱和手机立即绑定

asp.net core MVC中URL编码问题

asp.net core MVC中URL编码问题

互换的青春 2018-08-06 11:10:07
目的:要在URL中传递一个参数到服务端。但是name参数中有保留字符/,所以先用UrlEncode进行编码。测试代码如下:[Fact]public async void GetByName_TestAsync(){    var name = WebUtility.UrlEncode("aa/bbc");    var response = await Client.GetAsync($"api/users/{name}");      var user = await response.Content.ReadAsAsync<UserDto>();           user.Should().NotBeNull();  }服务端API:[HttpGet("{name}")]public async Task<UserDto> Get(string name){    return await _userAppService.GetUserByNameAsync(name); }结果查不到name=aa/bbc的user。通过debug发现,请求的结果是404,本来以为是MVC解码了URL再进行路由匹配,因此请求的路径就变成了aa/bbc。但通过在浏览器中发起请求,就可以等到编码后的值aa%2Fbbc,所以判断这是HttpClient的问题,它在发起请求之前对URL作了手脚。那么如何通过URL传递带有保留字符(/)的参数呢?
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 1213 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信