我正在努力以预期的格式向WCF发送PUT请求。我以为我可以像使用QueryString的GET一样发送它,但这只会引发错误。
//Put operation
[OperationContract]
[WebInvoke(UriTemplate = "?tid={transcriptId}&qId={quizId}&cid={choice}&mid={mbox}&status={status}", Method = "PUT", RequestFormat=WebMessageFormat.Json)]
vTranscript UpdateTranscript(string transcriptId, string quizId, string choice, string mbox, string status);
我还尝试使用CURL作为XML和JSON文件发送,但服务没有获取这些文件的值(值为null)。
[DataContract]
public class vTranscript
{
[DataMember]
public bool validUser;
[DataMember]
public bool correctAnswer;
[DataMember]
public bool recorded;
}
我假设我的vTranscript 不必须匹配我传入的参数,不过我甚至试过了。
我不确定我做错了什么。任何建议将不胜感激。谢谢。
答案 0 :(得分:1)
尝试如下设置bodystyle。
[WebInvoke(Method = "PUT", ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.WrappedRequest)]
答案 1 :(得分:0)
假设您发布了所有参数,您只需要以下内容:(请注意,发布的名称必须与方法参数名称匹配)
//Put operation
[OperationContract]
[WebInvoke(Method = "PUT", RequestFormat=WebMessageFormat.Json)]
vTranscript UpdateTranscript(string transcriptId, string quizId, string choice, string mbox, string status);
UriTemplate用于定义嵌入在url中的参数。