我必须将参数传递给我创建的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);
}
怎么做?
答案 0 :(得分:2)
在字符串服务中指定查询字符串 LoadAllColumnData?Id = 1 ...但是在 UriTemplate =&#34; LoadAllColumnData / {Id}中&#34; 你没有查询字符串...你已经定义了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);
编辑:Derek指出,将POST更改为GET。