Asp.net web api web api get方法中多参数的传递

Asp.net web api web api get方法中多参数的传递,asp.net-web-api,get,Asp.net Web Api,Get,我有一个带有以下参数的web api get方法 public DataSet Get([FromUri] EloQuaParameters paramss) { Hive9Common obj = new Hive9Common(); obj.credentials = paramss.credentials; obj.fromDate = paramss.fromDate; obj.toDate = paramss.

我有一个带有以下参数的web api get方法

public DataSet Get([FromUri] EloQuaParameters paramss)
{


Hive9Common obj = new Hive9Common();
            obj.credentials = paramss.credentials;
            obj.fromDate = paramss.fromDate;
            obj.toDate = paramss.toDate;
            obj.fieldMap = paramss.fieldMap;
//Credential & fieldmap always remain null
}
ELOQUA参数等级如下:

public class EloQuaParameters
        {
            public Dictionary<string, string> credentials { get; set; }
            public DateTime? fromDate { get; set; }
            public DateTime? toDate { get; set; }
            public Dictionary<string, string> fieldMap { get; set; }
        }
HttpClient client;
            string url = "http://localhost:54371/api/values/Get?credentials=" + credentialDictionary + "&fromDate=" + fromDate + "&toDate=" + toDate + "&fieldMap=" + fieldmpa;
            client = new HttpClient();
            client.BaseAddress = new Uri(url);
            client.DefaultRequestHeaders.Accept.Clear();
            client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/xml"));
            HttpResponseMessage responseMessage = await client.GetAsync(url);
            if (responseMessage.IsSuccessStatusCode)
            {
                var responseData = responseMessage.Content.ReadAsStringAsync().Result;

            }
在webApi方法中,fromdate和todate参数是接收正确的值,但这两个字典参数始终保持为null。我如何才能获得该字典参数的值。?
请帮忙,你真的不能。字典不是为在url中传递而设计的。想想如果你的字典里有大量的条目会发生什么

出于以下几个原因,您确实应该为此方法使用帖子:

首先,它将提供一种在单个对象中指定参数的方法,这有其优点。其次,在POST中发送参数会将这些参数放在请求主体中,这将允许通过HTTPS发送这些参数,因为您正在传递凭据,所以您实际上应该使用HTTPS。现在,没有理由不在所有事情上都使用HTTPS

将参数作为POST发送确实是一个微不足道的更改


希望能有所帮助。

谢谢你的回复,我使用了post方法,一切都很顺利。