• .ashx获取post body


     
    前台页面代码:
    var json = [{ "Name": "Pavan Kumar Pabothu", "Age": 27, "ID": 361621 }, { "Name": "Reddaiah Raju Padhmaraju", "Age": 27, "ID": 362541 }, { "Name": "Denish Raju Padhmaraju", "Age": 26, "ID": 368941 }];
    $.ajax({
    type: "POST",
    // url: "CommonFiles.aspx/DeleteFiles",
    url: "../data/AjaxTest.ashx",
    //data: "{Id:'" + deleteid + "'}",
    data: { 'myjson': json },
    contentType: "application/json; charset=utf-8",
    dataType: 'json',
    success: function (data) {
    var result = data.d;
    if (result == "error")//失败
    {
    }
    loadFileSort(id);
    }
    });
    Ashx 代码:
     
    StringBuilder rsb = new StringBuilder();
    var mRequest = context.Request;
    int bytelengg=(int)mRequest.InputStream.Length;
    using (var reader = new StreamReader(mRequest.InputStream,Encoding.UTF8))
    {
    var read = new Char[bytelengg];
    var count = reader.Read(read, 0, bytelengg);
    while (count > 0)
    {
    var str = new string(read, 0, count);
    rsb.Append(str);
    count = reader.Read(read, 0, bytelengg);
    }
    reader.Close();
    reader.Dispose();
    mRequest.InputStream.Close();
    mRequest.InputStream.Dispose();
    }
    然后通过反序列字符串转换成对
     
     
    public void ProcessRequest(HttpContext context)
    {
    context.Response.ContentType = "text/plain";
    //context.Response.Write(context.Request.Form["param2"]);
    HttpRequest request = context.Request;
    Stream stream = request.InputStream;
    string json = string.Empty;
    string responseJson = string.Empty;
    if (stream.Length != 0)
    {
    StreamReader streamReader = new StreamReader(stream);
    json = streamReader.ReadToEnd();
    context.Response.Write(json);
    }
    context.Response.Write("没有获取到json");
    }
     
    参数方式:
    context.Response.ContentType = "text/plain";
                if (context.Request.QueryString["My"] != null)
                {
                    context.Response.Write("参数:"+ context.Request.QueryString["My"]);
                }
                else
                {
                    context.Response.Write("没有参数!Hello World");
                }
  • 相关阅读:
    linux定时器
    TIMESTAMP和DATETIME的区别
    Linux进程或线程绑定到CPU
    C++学习笔记
    磁盘扇区校验和
    docker安装mysql,并配置部分表同步
    docker 安装tomcat
    多tomcat 同一个浏览器 多个项目 会导致session覆盖
    Ubuntu 安装 NodeJS
    Ubuntu 下安装 Arduino IDE
  • 原文地址:https://www.cnblogs.com/devgis/p/14180841.html
Copyright © 2020-2023  润新知