我正在创建以下WCF REST服务:
我的界面:
namespace WcfService1
{
[ServiceContract]
public interface IService1
{
[OperationContract]
[WebInvoke(Method = "GET", ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Wrapped, UriTemplate = "/InsertData/{data}")]
string InsertData(Data data);
}
[DataContract]
public class Data
{
[DataMember]
public string Name { get; set; }
[DataMember]
public string Email { get; set; }
[DataMember]
public string Category { get; set; }
[DataMember]
public string Mobile { get; set; }
[DataMember]
public string Message { get; set; }
}
}
现在我如何传递URL中的值。如果我正在运行当前的应用程序,则会出现以下错误:
答案 0 :(得分:1)
您正在尝试调用InsertData方法,该方法需要将复杂的对象数据传递给它,并使用Get方法执行此操作。通常,这是一个坏主意,因为Get请求没有用于存储序列化Data对象的正文内容 - 而在Get中,您只能将数据作为查询字符串传递。对于InsertData方法,正确选择http方法将是Put。如果要使用浏览器准备方法(如Get(int id))测试方法,请将属性UriTemplate指定为“data / Get / {id}”,然后从浏览器调用yourserviceurl / Service1.svc / data / Get / 1