如何从高级Rest客户端(Chrome应用程序)发送参数到用c#编写的Rest服务(asmx文件)
本文关键字:Rest 文件 asmx 服务 高级 客户端 Chrome 应用程序 参数 | 更新日期: 2023-09-27 18:02:14
我已经用c#编写了REST服务。这是样品。
[ScriptService]
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
// To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line.
// [System.Web.Script.Services.ScriptService]
public class TradeRestService : System.Web.Services.WebService
{
[WebMethod]
public string HelloWithRequest(String request)
{
return "You sent "+request;
}
[WebMethod]
public string HelloWithoutRequest()
{
return "Hello without request";
}
当我从Advanced REST Client调用REST服务时,我只能成功调用HelloRequest()方法。我不能将参数传递给接受参数的方法。
当我用参数调用HelloRequest()方法时,我得到了错误。
System.InvalidOperationException: Missing parameter: request.
at System.Web.Services.Protocols.ValueCollectionParameterReader.Read(NameValueCollection collection)
at System.Web.Services.Protocols.HtmlFormParameterReader.Read(HttpRequest request)
at System.Web.Services.Protocols.HttpServerProtocol.ReadParameters()
at System.Web.Services.Protocols.WebServiceHandler.CoreProcessRequest()
谁能告诉我如何传递参数?使用哪个选项?
首先确保您正在使用的其他客户端正在尝试通过GET而不是POST发送日期。然后检查GET是否已启用。尝试在您的web方法声明中添加以下内容:
[ScriptMethod(UseHttpGet = true)]
引用的文章
当然你也可以用同样的方式启用POST,使用POST发送请求…