wcf服务返回json

private static void CreateErrorReply(OperationContext operationContext, string key, HttpStatusCode statusCode, ResponseBase info=null, string description = null)
        {
            
            using (Message reply = Message.CreateMessage(MessageVersion.None, "", info, new DataContractJsonSerializer(typeof(ResponseBase))))
            {
                var wbfProp = new System.ServiceModel.Channels.WebBodyFormatMessageProperty(WebContentFormat.Json);
                // 构造HTTP响应消息
                HttpResponseMessageProperty responseProp = new HttpResponseMessageProperty()
                {
                    StatusCode = statusCode,
                    StatusDescription = description ?? "", 
                    SuppressEntityBody=false, 
                };

                reply.Properties.Add(HttpResponseMessageProperty.Name, responseProp);
                reply.Properties.Add(WebBodyFormatMessageProperty.Name, wbfProp);

                operationContext.RequestContext.Reply(reply);
                
                // 因为配置使用transferMode="StreamedRequest",如果请求不关闭,还会进入这个类,导致这个方法被执行两次,不能返回正常的错取码
                operationContext.RequestContext.Close();
                operationContext.RequestContext = null;
            }
        }
时间: 2024-10-06 07:38:38

wcf服务返回json的相关文章

Android访问WCF服务(使用json实现参数传递)

经过多日努力, 终于勉强弄明白了Android访问WCF服务的方法. 服务端实现 一, 实现服务. 操作契约 [csharp] view plaincopy [ServiceContract] public interface IService { [OperationContract] [WebInvoke( BodyStyle = WebMessageBodyStyle.WrappedRequest, ResponseFormat = WebMessageFormat.Json, Reque

【.net 深呼吸】聊聊WCF服务返回XML或JSON格式数据

有时候,为了让数据可以“跨国经营”,尤其是HTTP Web有关的东东,会将数据内容以 XML 或 JSON 的格式返回,这样一来,不管客户端平台是四大文明古国,还是处于蒙昧时代的原始部落,都可以使用这些数据. 在WCF中实现将数据以XML或JSON格式返回有Y多种方法,不管你用什么方法,只要得到预期结果就好,米芾说了,笔可以八面出锋,当然了,人家指的是绘画. 这里,老周就挑两种方法来演示,仅供参考,没有考古价值,建议司马子长不要把本文收入<史记>. 第一种方法是用到 WebServiceHos

jQuery调用WCF服务传递JSON对象

下面这个示例使用了WCF去创建一个服务端口从而能够被ASP.Net页面通过jQuery的AJAX方法访问,我们将在客户端使用Ajax技术来 与WCF服务进行通信.这里我们仅使用jQuery去连接Web Service,而不去使用ASP.Net AJAX库,至于为什么不使用AJAX库中,那是因为我们在项目中已经使用了jQuery,而它已经能处理全部的AJAX请求和所有功能,并且,如果我们 一旦使用ASP.NET AJAX库,我们也必须多包含一个超过80Kb的数据量(调试模式下会更大),但这也不是说

WCF服务返回XML或JSON格式数据

第一种方式public string GetData( string format) { string res = null; Student stu = new Student { StuID = 3, StuName ="李四" }; using (MemoryStream ms = new MemoryStream()) { XmlObjectSerializer sz = null; if ( format.ToLower() == "xml") { sz

jersey构建rest服务返回json数据

1.  eclipse 创建 dynamic web project 2.  将jersey相关jar包放到libs目录下 3. web.xml 增加 jersey 相关内容 <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.su

用NAT123搭建内网WCF服务并实现安卓APP访问附带站点简单的性能测试

以下原创,转转请注明出处,谢谢合作! 简介:NAT123是个很很强大的工具,而且使用非常简单,真正实现了帮用户无视内外网的建站服务. 这里简单介绍一下如何用NAT123建内网WCF服务,然后用一个安卓APP实现对它的调用,由于NAT123提供全端口映射(需要访问者支持),所以既可以做站点,APP后台,也可以做其他应用的服务器比如FTP等等,根据具体应用的需要而定.最后对所建的两个映射站点做了个简单的性能测试. 用NAT123搭建内网WCF服务:(由于文章主要是介绍NAT123,WCF相关内容自行

WCF返回JSON的详细配置

开发环境:VS2008,c# 1.新建个WCF服务网站 文件-新建-网站-WCF服务 2,运行一下,提示配置WEB.CONFIG,点击确认. 3,打开web.config增加如下节点: <serviceHostingEnvironment aspNetCompatibilityEnabled="true">  </serviceHostingEnvironment> endpoint 中增加 behaviorConfiguration="webBeha

JavaScript调用wcf服务,并且处理返回的字典集合

1.第一步创建wcf服务的方法 using System;using System.Collections.Generic;using System.Linq;using System.Runtime.Serialization;using System.ServiceModel;using System.ServiceModel.Activation;using System.ServiceModel.Web;using System.Text; namespace WcfService1{ 

jQuery通过Ajax向PHP服务端发送请求并返回JSON数据

ON(JavaScript Object Notation) 是一种轻量级的数据交换格式.易于人阅读和编写,同时也易于机器解析和生成.JSON在前后台交互的过程中发挥着相当出色的作用.请接着往下看教程. XHTML  <ul id="userlist">    <li><a href="#" rel="1">张三</a></li>    <li><a href=&quo