Asp.net web api web api get方法中多参数的传递
我有一个带有以下参数的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.
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方法,一切都很顺利。