我想知道使用长查询字符串参数创建 ASP.NET HTTP 处理程序 (.ashx) 的最佳解决方案是什么,因为我有像“描述”这样的参数,这将是一个长字符串,这将在 URL 中产生问题当通过 HTTP 请求访问它时。
最佳答案
如果你只是想使用GET
方法,你不能解决这个问题,你可以设置在What is the maximum length of a URL?为什么。
您可以更改您的 .ASHX 文件接受 POST
方法。
<httpHandler>
<add path="1.ashx" verb="post" type="" />
</httpHandler>
你的服务器端代码是这样的:
public void ProcessRequest(HttpContext context)
{
var stream = context.Request.InputStream;
using (StreamReader sr = new StreamReader(stream))
{
var text = sr.ReadToEnd();
}
}
或替代方案(基于您的客户端如何发送数据)
public void ProcessRequest(HttpContext context)
{
var text= context.Request.Form["text"];
}
您的客户端:
<script type="text/javascript">
$.ajax({
type: 'POST',
url: "1.ashx",
data: { name: "John", time: "2pm" }
});
</script>
关于具有长查询字符串参数的 ASP.NET 处理程序 (.ashx),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9737998/