[英]How to pass multiple parameters in WCF Rest Service: string and Stream in C#
[英]Pass parameters to WCF REST from C#
我必須將參數傳遞給我創建的WCF服務。 當我嘗試將其作為QueryString傳遞時,它拋出了“ 404 Not found
”。
//碼:
string Service = ""http://localhost:58092/Service1.svc/DataService/LoadAllColumnData?Id=1";
WebRequest wreq = WebRequest.Create(Service);
WebResponse wres = wreq.GetResponse();
DataContractSerializer coll = new DataContractSerializer(typeof(DataServiceProxy.GdColumns));
var arrProd = coll.ReadObject(wres.GetResponseStream());
// WCF代碼:
[ServiceContract]
public interface IDataService
{
[OperationContract]
[WebGet(BodyStyle = WebMessageBodyStyle.Wrapped, UriTemplate = "LoadAllColumnData/{Id}")]
IList<GdColumns> LoadAllColumnData(string Id);
}
這個怎么做?
在您的字符串Service中,您指定了一個查詢字符串LoadAllColumnData?Id = 1 ...,但是在您的UriTemplate =“ LoadAllColumnData / {Id}”中,您沒有查詢字符串...您已定義URL將保存該參數。
如下更改您的服務網址,它應該可以工作...
string Service = ""http://localhost:58092/Service1.svc/DataService/LoadAllColumnData/1";
要使用查詢字符串...
[WebInvoke(Method = "GET",
BodyStyle = WebMessageBodyStyle.WrappedRequest,
UriTemplate = "LoadAllColumnData?Id={Id}")]
IList<GdColumns> LoadAllColumnData(string Id);
要使用網址...
[WebInvoke(Method = "GET",
BodyStyle = WebMessageBodyStyle.WrappedRequest,
UriTemplate = "LoadAllColumnData/{Id}")]
IList<GdColumns> LoadAllColumnData(string Id);
編輯:正如德里克指出的,將POST更改為GET。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.