我有一个如下的网络服务,
[ServiceContract]
public interface IRestServiceImpl
{
[OperationContract]
[WebInvoke(Method = "POST",
ResponseFormat = WebMessageFormat.Json,
BodyStyle = WebMessageBodyStyle.Wrapped,
UriTemplate = "json/{jsondata}")]
void JSONData(string jsondata);
}
public class RestServiceImpl : IRestServiceImpl
{
List<ClsTripAdvisorData> lst = new List<ClsTripAdvisorData>();
ClsTripAdvisorData _ClsTripAdvisorData = null;
#region IRestServiceImpl Members
public void JSONData(string jsondata)
{
string[] data = jsondata.Split('&');
}
}
它期待JSON输入。我正在通过传递JSON字符串作为查询字符串请求来测试此服务,如下所示,
http://localhost:1162/RestServiceImpl.svc/json/api_version=4 &hotels=[{"ta_id":97497,"partner_id":"229547","partner_url":"http://partner.com/deeplink/to/229547"},{"ta_id":97832,"partner_id":"id34234","partner_url":"http://partner.com/deeplink/to/id34234"}] &start_date=2013-07-01 &end_date=2013-07-03 &num_adults=2 &num_rooms=1 &lang=en_US ¤cy=USD &user_country=US &device_type=d &query_key=6167a22d1f87d2028bf60a8e5e27afa7_191_1360299600000_2_2
此处我的字符串参数为api_version=4 &hotels=[{"ta_id":97497,"partner_id":"229547","partner_url":"http://partner.com/deeplink/to/229547"},{"ta_id":97832,"partner_id":"id34234","partner_url":"http://partner.com/deeplink/to/id34234"}] &start_date=2013-07-01 &end_date=2013-07-03 &num_adults=2 &num_rooms=1 &lang=en_US ¤cy=USD &user_country=US &device_type=d &query_key=6167a22d1f87d2028bf60a8e5e27afa7_191_1360299600000_2_2
调试时没有达到服务方法断点。
同时为下面的JSON工作,
http://localhost:1162/RestServiceImpl.svc/json/asd
不接受JSON字符串输入的服务方法
我只想将此字符串作为我的Web服务的正文部分发送。但我不知道如何使用wcf rest service发送和接收此json字符串
答案 0 :(得分:1)
将以下装饰添加到方法
<OperationContract()> _
<WebGet(UriTemplate:="YourCoolFunction?inpt={inpt}", BodyStyle:=WebMessageBodyStyle.Wrapped,
RequestFormat:=WebMessageFormat.Json, ResponseFormat:=WebMessageFormat.Xml)> _
Public Function YourCoolFunction(inpt As String) As String
在.svc文件中,添加 Factory =“System.ServiceModel.Activation.WebServiceHostFactory”
在web.config中添加
<defaultDocument>
<files>
<add value="YourFile.svc"/>
</files>
</defaultDocument>