我正在通过 Postman see image from postman发出get请求
而当请求到达我的控制器时,像“+”这样的字符会被转换成空格““。API是用C#写的。
我的控制器代码是:
[RoutePrefix("")]
public partial class _DesifrarCusController : CaramlController, I_DesifrarCusController
{
[HttpGet]
[Route("descifrarCus")]
public IHttpActionResult GetDescifrarCusResponse( [FromUri] string cus = null ) {
return Ok (ExecGetDescifrarCusResponse(cus));
//return Ok();
}
}
我的代码的调试可以在下面的截图中看到:debugging postman request
有人知道 Postman 在用请求字符串做什么吗?
我试过用引号和ASCII字符发送字符串,但问题仍然存在。
I add capture of the postman headers
4条答案
按热度按时间rfbsl7qr1#
需要对Postman上的参数进行编码,先在
Params
页签下添加参数然后选择该值并右键单击该值选择
EncodeURIComponent
你就会得到编码参数
参考:https://learning.postman.com/docs/sending-requests/requests/
uurity8g2#
Postman 发送数据查询编码它与urlencode。这是正常的。发送这种长数据从网址是不是最好的做法。我建议使用HttpPost和发送数据从身体。
gpnt7bae3#
URI中的数据必须是UrlEncoded。当你的C#应用程序接收到数据时,它会解码数据,用空格代替加号(公平地说,这是旧的标准)。
Postman 不会自动为你做这件事,但它可以帮助。
如果你有一个这样的值。
您可以选择文本并右键单击它以获得对值进行编码的选项。
这将正确地对值进行编码,并按预期在C#应用程序中接收该值。
mfpqipee4#
正如其他人在回答中提到的,这是编码问题。或者,您可以使用[FromBody],然后将字符串放在postman的body请求部分