簡體   English   中英

從C#將參數傳遞到WCF REST

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM