具有长查询字符串参数的ASP.NET处理程序(.ashx)

时间:2012-03-16 13:18:43

标签: asp.net web-services api http

我想知道使用长查询字符串参数创建ASP.NET HTTP Handler(.ashx)的最佳解决方案是什么,因为我有像“description”这样的参数,这将是一个长字符串,会在URL中产生问题当通过HTTP请求访问它时。

1 个答案:

答案 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>