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

标签 asp.net web-services api http

我想知道使用长查询字符串参数创建 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/

相关文章:

c# - 如何部署 "Release"版本的 ASP.NET MVC5 应用程序

web-services - 如何对 REST 网络服务执行 POST 请求?

java - WS 客户端中的许多 TIME_WAIT 连接

java - 从 .Net 调用 Java Web 服务时出现安全策略错误

php - 显示来自 Instagram PHP API 的用户信息

java - 多维对象上的 JSONDoc 注释

Node.JS:如何在 URL 请求中使用百分号登录?

asp.net - 不活动时停止 UpdatePanel

javascript - 在 javascript 中获取 asp 服务器元素时出错

c# - 使用不记名 token 身份验证时设置 asp.net CORE 2 身份验证 cookie