如何从高级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()

谁能告诉我如何传递参数?使用哪个选项?

如何从高级Rest客户端(Chrome应用程序)发送参数到用c#编写的Rest服务(asmx文件)

首先确保您正在使用的其他客户端正在尝试通过GET而不是POST发送日期。然后检查GET是否已启用。尝试在您的web方法声明中添加以下内容:

[ScriptMethod(UseHttpGet = true)]

引用的文章

当然你也可以用同样的方式启用POST,使用POST发送请求…