我創建了一個WCF服務,它返回一些數據並允許發佈一些數據。 服務的方法如下:如何定義屬性以將數據上傳到通過WCF服務實現的REST Web服務?
[OperationContract]
bool UploadStream(Guid key, List<StreamRecord> values);
[OperationContract]
bool RegisterStream(Guid key);
[OperationContract]
StreamCollection GetStreams(Guid key);
我需要一個REST接口來實現這一點。 我創建了一個新的接口,IRestService如下
[WebInvoke(
Method = "GET",
ResponseFormat = WebMessageFormat.Xml,
UriTemplate = "/bitpool/{poolKey}/streams")]
BitStreamCollection GetBitStreams(string poolKey);
,它工作正常(我可以在瀏覽器地址欄中測試它所有的罰款)
現在我想也實現上傳方法,但我不知道該怎麼辦呢 我試着用
[WebInvoke(
Method = "POST",
RequestFormat = WebMessageFormat.Xml,
ResponseFormat = WebMessageFormat.Xml,
UriTemplate = "/stream/{streamKey}/records/{values}")]
bool UploadStream(string streamKey, List<StreamRecordEntity> values);
但是,當我嘗試訪問瀏覽器服務提示錯誤
http://localhost:6767/RestServer.svc/
它給出了一個錯誤:在合同
操作'UploadBitStream「IRestServerJson」有一個名爲「價值」不具有類型「字符串」路徑變量。 UriTemplate路徑段的變量必須具有「字符串」類型。
我認爲對於POST我不能定義這樣的URL,但我該怎麼做呢?
此外,方法RegisterStream應檢查是否存在與鍵的流,如果不存在,創建它並返回true,否則返回false。
我應該將它定義爲GET(因爲它必須返回結果)還是PUT或POST?
感謝