【问题标题】:How to pass string array as parameter to the webservice in asp.net [duplicate]如何将字符串数组作为参数传递给asp.net中的Web服务[重复]
【发布时间】:2017-12-24 21:42:53
【问题描述】:
[WebMethod]
[ScriptMethod(UseHttpGet = true, ResponseFormat = ResponseFormat.Json)]
public string getUser(string[] username){
    string[] result= new string[5];
    string qry="";
    for(int i=0;i<5;i++)
    {
        username[i]= a;
        qry="SELECT * FROM USER WHERE USERNAME='" + a + "' ";
        result[i] = getjsondata(qry);
        return result[i];  
    }

}

当我尝试执行一个方法时,它显示测试表单仅适用于以原始类型作为参数的方法。我尝试了List 作为参数,但也失败了。我想将string[] 作为参数传递给WebMethod。

【问题讨论】:

  • 所示代码容易受到 SQL 注入攻击,如果名称包含撇号,它将无法工作。代码需要修改为使用 SQL 参数而不是字符串连接,这将解决这两个问题。
  • 完全不相关,但我会考虑使用 Web API,更流畅,自我记录和工作的乐趣。我花了一天时间来学习基础知识并构建一个可行的解决方案。还有实体框架?如果您受框架/工作限制。请忽略。

标签: c# asp.net arrays webmethod


【解决方案1】:

您正在使用GET 操作,该操作仅支持 URL / 查询字符串参数。

对于非原始参数类型,您需要使用 HTTP 正文。为了使用正文,您应该使用 POST 或其他 HTTP 操作之一。

更多详情请查看此答案:Simple post to Web Api

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-01-02
    • 2023-03-26
    • 1970-01-01
    • 2014-03-03
    • 2022-11-01
    • 1970-01-01
    • 2016-07-07
    相关资源
    最近更新 更多