【问题标题】:How to pass parameters using Query string in a Soap web service?如何在 Soap Web 服务中使用查询字符串传递参数?
【发布时间】:2018-04-28 09:07:53
【问题描述】:

这是我的第一个 Web 服务,使用 .NET 4.6 编写。

我正在使用System.Web.Services.WebService

如何将查询字符串中的参数传递给 Web 服务?

如果我调用 URL:http://localhost:11111/myWebService.asmx/GetWorldById 并尝试传递类似的参数

http://localhost:111/myWebService.asmx/GetWorldById?worldid=1

我收到错误:Request format is unrecognized for URL unexpectedly ending in '/GetWorldById'

这是我的代码

[WebMethod]
    public string GetWorldById(int worldid)
    {
        using (MySqlConnection db = new MySqlConnection(connString))
        {
            MySqlCommand cmd = new MySqlCommand("", db);
            MySqlDataReader dr;

            cmd.CommandText = "SELECT * FROM myTable WHERE worldid='" + param1+ "'";
            db.Open();
            dr = cmd.ExecuteReader();
            if (dr.HasRows)
            {
                PopulateListFromDataReader(dr);

            }


        }

        JavaScriptSerializer js = new JavaScriptSerializer();
        return (js.Serialize(worldsList));
    }

【问题讨论】:

  • Soap 不使用 url 参数,它使用 xml 有效负载

标签: c# .net web-services


【解决方案1】:

你总是可以从请求中读取参数

int worldid = int.Parse(HttpContext.Current.Request[nameof(worldid)]);

但无论如何你都需要一个发布请求。

【讨论】:

    猜你喜欢
    • 2012-08-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-12
    • 2012-08-28
    • 1970-01-01
    相关资源
    最近更新 更多