using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.ServiceModel.Web;
using System.Text;
namespace MyServiceInterface
{
[ServiceContract]
public interface IService1
{
[OperationContract]
int Add(int Number1, int Number2);
[OperationContract]
int Sub(int Number1, int Number2);
[OperationContract]
int Mul(int Number1, int Number2);
[OperationContract]
int Div(int Number1, int Number2);
}
[ServiceContract]
public interface IService2
{
[OperationContract]
[WebGet(UriTemplate = "/Add/{Number1}/{Number2}", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)]
int AddRest(string Number1, string Number2);
[OperationContract]
[WebGet(UriTemplate = "/Sub/{Number1}/{Number2}", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)]
int SubRest(string Number1, string Number2);
[OperationContract]
[WebGet(UriTemplate = "/Mul/{Number1}/{Number2}", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)]
int MulRest(string Number1, string Number2);
[OperationContract]
[WebGet(UriTemplate = "/Div/{Number1}/{Number2}", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)]
int DivRest(string Number1, string Number2);
}
}
using MyServiceInterface;
namespace WebApplicationWCF
{
public class Service1 : IService1, IService2
{
public int Add(int Number1, int Number2)
{
return Number1 + Number2;
}
public int Sub(int Number1, int Number2)
{
return Number1 - Number2;
}
public int Mul(int Number1, int Number2)
{
return Number1 * Number2;
}
public int Div(int Number1, int Number2)
{
return Number1 / Number2;
}
public int AddRest(string Number1, string Number2)
{
int num1 = Convert.ToInt32(Number1);
int num2 = Convert.ToInt32(Number2);
return num1 + num2;
}
public int SubRest(string Number1, string Number2)
{
int num1 = Convert.ToInt32(Number1);
int num2 = Convert.ToInt32(Number2);
return num1 - num2;
}
public int MulRest(string Number1, string Number2)
{
int num1 = Convert.ToInt32(Number1);
int num2 = Convert.ToInt32(Number2);
return num1 * num2;
}
public int DivRest(string Number1, string Number2)
{
int num1 = Convert.ToInt32(Number1);
int num2 = Convert.ToInt32(Number2);
return num1 / num2;
}
}
}
Web.config
<system.serviceModel>
<endpoint name ="RESTEndPoint"
contract ="MyServiceInterface.IService2"
binding ="webHttpBinding"
address ="rest"
behaviorConfiguration ="restbehavior"/>
<endpoint contract="IMetadataExchange"
binding="mexHttpBinding"
address="mex" />
</service>
</services>
</system.serviceModel>
<system.webServer>
<!--
To browse web app root directory during debugging, set the value below to true.
Set to false before deployment to avoid disclosing web app folder information.
-->
<directoryBrowse enabled="true"/>
</system.webServer>
GET http://localhost:8000/Service1.svc/Rest/add/7/2 HTTP/1.1
Host: localhost:8000
Connection: keep-alive
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Whale/1.4.64.6 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,/;q=0.8
Accept-Encoding: gzip, deflate, br
Accept-Language: ko-KR,ko;q=0.9,en-US;q=0.8,en;q=0.7
3