我很努力地發送一個PUT請求到WCF格式,它期望。我想我可以用QueryString很像GET一樣發送它,但是這只是將錯誤反饋回來。什麼是WCF PUT請求的正確格式?
//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文件,但這些文件的值沒有被服務(值爲空)拾取。
[DataContract]
public class vTranscript
{
[DataMember]
public bool validUser;
[DataMember]
public bool correctAnswer;
[DataMember]
public bool recorded;
}
我假設我vTranscript不不一定要配合我傳遞的參數,但我甚至試過了。
我不知道我在做什麼不正確。任何建議將不勝感激。謝謝。
謝謝你的幫助。這工作,但現在我得到「405方法不允許」。這似乎有很多可能的原因,當我谷歌的錯誤消息。我在VS2010中運行了所有的東西,所以我懷疑它是否與我看到的跨域問題有關。 – Trebor
默認情況下,PUT和DELETE動詞是禁用的。此主題(http://stackoverflow.com/a/10907343/2711582)提供了有關如何啓用它們的信息。客戶端的解決方法是執行POST並添加X-HTTP-Method-Override頭來指定實際的動詞。 – wdosanjos
經過這一些工作後,我能夠解決這個問題。我以JSON數組包裝我的JSON,而不是一個簡單的JSON字符串。感謝您的幫助。 – Trebor