使用SoapUI

1.新建一个rest项目

如何测试WCF Rest-LMLPHP

2.双击上图中的Request1

查询的时候,Method选择post

resource的地方要调整到对应的方法

查询的内容是用json格式发送

查询的的结果使用json查看

如何测试WCF Rest-LMLPHP

Endpoint需要补充二级域名

如何测试WCF Rest-LMLPHP

层级结构说明

如何测试WCF Rest-LMLPHP

第1个是project

第2个是wsdl或者wadl,对应到某一个域名

第3个是Service,比如在一个域名下部署多个service

第4个是Method,是service下的某一个具体的方法

第5个是Request,一个method可以有多个request,每个request可以设置自己独立的参数

使用Fiddler

https://stackoverflow.com/questions/7273364/wcf-rest-service-post-method-fails-in-fiddler

执行post

Content-Type: application/json

post下面的方框填写内容的格式,RequestBody填写传输的内容,操作类型可以选择为post,右上角execute

如何测试WCF Rest-LMLPHP

执行结果,在inspectors中查看

如何测试WCF Rest-LMLPHP

request1

response1  这里的处理是有问题是,应该是返回一个未授权的错误

request2

手动添加这个 Content-Type: application/json

response2

request3

response3

直接新建一个控制台应用,然后添加WCF的Contract类库作为引用【添加ServiceReference会出问题的】

    class Program
{
private static string url = "http://172.31.212.20/Lisa.WebApi2/ChileService.svc"; static void Main(string[] args)
{
//设置EmptyRequest的key
EmptyRequest emptyRequest = new EmptyRequest { Key = "xxx" };
//对emptyRequest进行Json序列化
string strJson = JsonConvert.SerializeObject(emptyRequest); //进行加密
var securityKey = "ChuckLu";
HMACSHA256Encryption hmacsha256Encryption = new HMACSHA256Encryption();
var securityHash = hmacsha256Encryption.Encrypt(strJson, securityKey); //将加密结果封装为messageHeader
MessageHeader messageHeader = new MessageHeader { SecurityHash = securityHash }; ChannelFactory<IChileService> cf = new ChannelFactory<IChileService>(new WebHttpBinding(), url);
cf.Endpoint.Behaviors.Add(new WebHttpBehavior());
IChileService channel = cf.CreateChannel(); //调用
PartnershipListResponse partnershipListResponse =
channel.GetAllPartnershipsWithBrands(messageHeader, emptyRequest); if (partnershipListResponse.Status != OperationStatus.Ok)
{
Console.WriteLine(partnershipListResponse.Status);
Console.ReadKey();
} strJson = JsonConvert.SerializeObject(partnershipListResponse);
Console.WriteLine(strJson); //foreach (var item in partnershipListResponse.Partnerships)
//{
// Console.WriteLine($@"{item.PartnershipRUT} {item.PartnershipName} {item.Brands}{Environment.NewLine}");
//}
Console.ReadKey();
}
}
05-11 22:19
查看更多