You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#开发ASMX WebService如何仅返回纯数值而非XML包装内容?

让ASMX WebService直接返回纯数值而非XML包装结果

当然可以直接返回目标的两个数值,不用再手动处理XML。核心思路是跳过ASMX默认的XML序列化流程,直接通过HttpContext输出纯文本内容。

实现步骤:

  • 将WebMethod的返回类型改为void(不再依赖默认的返回值序列化)
  • 利用HttpContext.Current.Response直接输出你需要的数值格式
  • 设置响应的内容类型为纯文本,并结束响应以避免默认的XML输出

代码示例:

using System.Web;
using System.Web.Services;

[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
public class MyWebService : WebService
{
    [WebMethod]
    public void GetCoordinates(string requestParam)
    {
        // 替换成你的坐标计算逻辑
        int targetX = 150;
        int targetY = 300;
        
        // 设置响应为纯文本格式
        HttpContext.Current.Response.ContentType = "text/plain";
        // 输出数值,用逗号分隔(可按需改成空格、竖线等分隔符)
        HttpContext.Current.Response.Write($"{targetX},{targetY}");
        // 结束响应,阻止ASMX输出默认的XML包装
        HttpContext.Current.Response.End();
    }
}

调用这个方法时,浏览器会直接收到150,300这样的纯文本结果,无需再解析XML结构。

注意:这种方式仅适用于HTTP GET/POST直接调用(比如你用浏览器访问的URL方式),如果需要兼容SOAP客户端调用,建议单独写一个方法或者在方法内判断请求类型做分支处理。

内容的提问来源于stack exchange,提问作者gpol

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 18:40:39