C#用.ashx可执行文件写WebService的小Demo

本文介绍了一个使用C#实现的编号查询功能,通过HTTP请求接收参数,从预定义的字典中查找对应的内容,并将结果以JSON格式返回。同时,提供了前端页面的AJAX调用示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

需求:通过输入编号找到对应内容
.ashx可执行文件代码
using System;
using System.Collections;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Runtime.Serialization.Json;
using System.Text;
using System.Web;
using System.Web.Services;

namespace WebApplication1
{
///
/// test 的摘要说明
///
public class test : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = “text/plain”;
string action = context.Request.QueryString[“action”].ToString();
if (action == “bbb”)
{
context.Response.Write(Result(context));
}
}
public bool IsReusable
{
get
{
return false;
}
}
public string Result(HttpContext context)
{
string userName = context.Request.QueryString[“userName”].ToString();
Dictionary<string, string> list = new Dictionary<string, string>();
list.Add(“111”, “第一组数据” + “;”+ “sadfgh”);
list.Add(“222”, “第二组数据”);
list.Add(“333”, “第三组数据” + “;” + “sadfgh”);
list.Add(“444”, “第四组数据”);
var result = from pair in list orderby pair.Key select pair;

        foreach (KeyValuePair<string, string> pair in result)
        {
            if (pair.Key == userName)
            {
                DataContractJsonSerializer js = new DataContractJsonSerializer(typeof(String));
                MemoryStream msObj = new MemoryStream();
                //将序列化之后的Json格式数据写入流中
                js.WriteObject(msObj, pair.Value);
                msObj.Position = 0;
                //从0这个位置开始读取流中的数据
                StreamReader sr = new StreamReader(msObj, Encoding.UTF8);
                string json = sr.ReadToEnd();
                sr.Close();
                msObj.Close();
                return json;
            }
        }
        return "编号输入有误,请重新输入!";
    }
}

}

前台代码
<%@ Page Language=“C#” AutoEventWireup=“true” CodeBehind=“LoginGet.aspx.cs” Inherits=“WebApplication1.LoginGet” %>

测试页面
<script type="text/javascript">
    $(function () {
        $("#txtName").blur(function () {
            JudgeUserName();
        });
    });
    function JudgeUserName() {
        $.ajax({
            type: "get",
            url: "/test.ashx",
            //dataType:"text",
            data: { "userName": $("#txtName").val(), "action": "bbb" },
            success: function (msg) {
                // alert(msg);
                $("#MsgContent").empty();
                $("#MsgContent").append(msg);
            }
        });
    }
 </script>
C#中创建一个新的Handler(如Handler1.ashx)页面通常用于处理HTTP请求,尤其是那些不需要完整的ASP.NET视图引擎支持的情况。以下是步骤: 1. **打开Visual Studio**:首先,确保你已经安装了Microsoft Visual Studio,选择Web项目作为模板。 2. **添加项目文件夹**:在解决方案资源管理器中,右键点击“Web”文件夹,然后选择“Add” -> “New Folder”。命名这个新文件夹为"Handlers"或似名称,以便分。 3. **创建Handler文件**:在"Handlers"文件夹中右击,选择“Add” -> “New Item...”,然后找到并选择“ASP.NET Handler (.ashx)”模板。 4. **编辑Handler1.ashx**:双击刚创建的Handler1.ashx文件,它会打开一个空白的文本编辑器,你可以在此编自定义的ASP.NET代码。一般来说,`HttpHandler`需要实现` IHttpHandler`接口,并覆盖`ProcessRequest`方法来处理请求。 5. **配置Web.config**:为了启用对ashx文件的支持,需要在Web项目的根目录下的`web.config`文件中添加一个 `<httpHandlers>` 部分,例如: ```xml <configuration> <system.webServer> <handlers> <add name="MyHandler" path="Handler1.ashx" verb="*" type="YourNamespace.Handler1, YourProjectName" /> </handlers> </system.webServer> </configuration> ``` 替换`YourNamespace`和`YourProjectName`为你实际的命名空间和项目名。 6. **测试Handler**:通过浏览器访问似于`http://localhost/YourApplication/Handlers/Handler1.ashx`的URL来测试你的Handler是否能正常工作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值