博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
WCF多种调用方式兼容
阅读量:6205 次
发布时间:2019-06-21

本文共 4477 字,大约阅读时间需要 14 分钟。

原文:

1、能被ajax get

2、能post

3、wcf正常调用

实现:

1     [AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)] 2     [JavascriptCallbackBehavior(UrlParameterName = "jsoncallback")] 3     public class WCFJsonTest : IWCFJsonTest 4     { 5          6         public List
GetTest(string id) 7 { 8 List
list = new List
(); 9 TestModel t = new TestModel();10 t.Ids = 1;11 t.Names = id;12 list.Add(t);13 14 TestModel t1 = new TestModel();15 t1.Ids = 1;16 t1.Names = id+"_"+Guid.NewGuid().ToString();17 list.Add(t1);18 19 return list;20 }21 22 23 public TestModel PostTest(string id, string name)24 {25 TestModel t1 = new TestModel();26 t1.Ids = int.Parse(id);27 t1.Names = name + "_" + Guid.NewGuid().ToString();28 return t1;29 }30 31 32 public TestModel PostTest1(TestModel model)33 {34 TestModel t1 = new TestModel();35 t1.Ids = model.Ids;36 t1.Names = model.Names + "_" + Guid.NewGuid().ToString();37 return t1;38 }39 }

接口:

1 [ServiceContract] 2      3     public interface IWCFJsonTest 4     { 5         [OperationContract] 6         [WebGet(UriTemplate = "/GetTest/{id}", ResponseFormat = WebMessageFormat.Json)] 7         List
GetTest(string id); 8 9 [OperationContract]10 [WebInvoke(Method="GET", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.WrappedRequest)]11 TestModel PostTest(string id, string name);12 13 [OperationContract]14 [WebInvoke(RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.WrappedRequest)]15 TestModel PostTest1(TestModel model);16 }

配置:

endpoint配置两个一个web使用webHttpBinding,一个给wcf

1 
2
3
4
5
6
7
8
9
10 11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
39
41
42
44
45
46
47
48
49
50
51
52
53
54

调用:

wcf正常调用地址:http://xxxxxx:xxxx/JsonTestService.svc

post:http://xxxxxx:xxxx/JsonTestService.svc/PostTest

get:http://xxxxxx:xxxx/JsonTestService.svc/GetTest/2

 

例如:

1 string srcString=GetData("", "http://xxxxxx:xxxx/JsonTestService.svc/GetTest/2"); 2  3                 srcString = PostHelper.GetPermissionRemoteData("http://xxxxxx:xxxx/JsonTestService.svc/PostTest","{\"id\":\"10\",\"name\":\"张三\"}","text/json"); 4  5                 string jsonStr = "{\"Ids\":\"10\",\"Names\":\"张三1\"}"; 6                 srcString = PostHelper.GetPermissionRemoteData("http://xxxxxx:xxxx/JsonTestService.svc/PostTest1", "{\"model\": "+ jsonStr+" }", "text/json"); 7  8                 WCFJsonTestClient client = new WCFJsonTestClient(); 9                 var r = client.GetTest("1");10                 var r1 = client.PostTest("1", "a");11                 var r2 = client.PostTest1(new TestModel() { Ids = 1, Names = "2" });
1 $.ajax({ 2                 type: "GET", 3                 dataType: "jsonp", 4                 url: 'http://xxxxxx:xxxx/JsonTestService.svc/GetTest/2', 5                 success: function (data) { 6                     console.log(data); 7                 }, 8                 error: function (XMLHttpRequest, textStatus, errorThrown) { 9                     console.log('err1' + XMLHttpRequest);10                     console.log('err2' + textStatus);11                     console.log('err3' + errorThrown);12                 }13             });

 

转载地址:http://sxhca.baihongyu.com/

你可能感兴趣的文章
matlab保存数据
查看>>
Python+Appium寻找蓝牙/wifi匹配
查看>>
刘汝佳 例题10-3 选择与除法
查看>>
线性表 - 数据结构和算法06
查看>>
2017.1.20活动
查看>>
C/C++实现删除字符串的首尾空格
查看>>
es6重点笔记:数值,函数和数组
查看>>
「CH2101」可达性统计 解题报告
查看>>
javascript权威指南——笔记(第十章:正则)
查看>>
清理(委托类型实例)事件处理(实例)的函数及Lambda表达式
查看>>
C++的常量折叠(一)
查看>>
跟随我在oracle学习php(21)
查看>>
Deep learning:一(基础知识_1)
查看>>
1.4版本上线(第八次会议)
查看>>
maven POM.xml内的标签大全详解
查看>>
js中如何判断一个DOM对象是否存在?
查看>>
telnet命令发送邮件
查看>>
Linux学习笔记15—RPM包的安装OR源码包的安装
查看>>
【整理】fiddler不能监听 localhost和 127.0.0.1的问题
查看>>
css----实现checkbox图片切换
查看>>