c# - 从 RestSharp 客户端将 int 列表传递给 Web API

标签 c# asp.net-web-api restsharp

当我使用下面来自 REST Sharp 的代码时,我无法传递 listOfSelectedTicketsIds,它始终为 null。

Rest Sharp .net 客户端请求

 var _stDeveloperApi = new RestClient("http://127.0.0.1/");
            var url = string.Format("api/v1/SignalR/MultiClickMode");
            var listOfSelectedTicketsIds = new List<int> { 2, 3 };
            var request = new RestRequest(url, Method.GET);
            request.AddParameter("listOfSelectedTicketsIds", listOfSelectedTicketsIds, ParameterType.GetOrPost);
            var response = _stDeveloperApi.Execute(request);

Web API 方法

[HttpGet]
        public HttpResponseMessage MultiClickMode(List<int> listOfSelectedTicketsIds)
        { 
            var response = new HttpResponseMessage();

            try
            {

            }
            catch (Exception ex)
            {
                response = Request.CreateResponse(HttpStatusCode.InternalServerError);
            }

            return response;
        }

最佳答案

像这样更改您的客户端代码。

var _stDeveloperApi = new RestClient("http://127.0.0.1/");
var url = string.Format("api/v1/SignalR/MultiClickMode");
var listOfSelectedTicketsIds = new List<int> { 2, 3 };
var request = new RestRequest(url, Method.GET);
listOfSelectedTicketsIds.ForEach(t => 
            request.AddParameter(
                "listOfSelectedTicketsIds", t, ParameterType.GetOrPost));
var response = _stDeveloperApi.Execute(request);

像这样更改 Web API 操作方法签名。

public HttpResponseMessage MultiClickMode(
                               [FromUri]List<int> listOfSelectedTicketsIds)

关于c# - 从 RestSharp 客户端将 int 列表传递给 Web API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21271326/

相关文章:

c# - protobuf-net 中的 ProtoBuf.Serializer 和 ProtoBuf.Meta.TypeModel 有什么区别?

c# - Lambda 函数处理程序 C# 中的取消标记

c# - WebApi 自定义授权属性不起作用

c# - Web API - 事件通知

c# - RestSharp AddFile 将多部分表单标题添加到文件

URI 太长了

c# - 没有完全理解为什么我要在类中有一个接口(interface),而不是继承它

c# - 生成随机数的算法?不要使用 System.Random

c# - 如何从Request对象中获取HttpContent?

c# - RestSharp 异步后台线程