我想知道使用长查询字符串参数创建ASP.NET HTTP Handler(.ashx)的最佳解决方案是什么,因为我有像“description”这样的参数,这将是一个长字符串,会在URL中产生问题当通过HTTP请求访问它时。
答案 0 :(得分:1)
如果您只想使用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>