我需要能够将编码对象附加到URI以将其传递给Web API端点。
在this帖子中,作者正在创建一个对象:
var request = new Object();
request.SearchWindowStart = start.toISOString();
request.SearchWindowEnd = end.toISOString();
request.ServiceId = "5f3b6e7f-48c0-e511-80d7-d89d67631c44";
request.Direction = '0';
request.NumberOfResults = 10;
request.UserTimeZoneCode = 1;
然后他们将其附加到网址:
var req = new XMLHttpRequest()
req.open("GET", clientUrl + "/api/data/v8.0/Search(AppointmentRequest=@request)?@request=" + JSON.stringify(request) , true);
我实际上无法修改C代码然而我有两个选择。第一个选项是将参数添加到URL中我实际上无法修改c#代码但是我有两个选项。第一个选项是将参数添加到URL中,另一个选项是使用我的目标对象向请求添加正文。
如果我提前了解对象的结构,如何将其包含在我的请求中?
答案 0 :(得分:2)
你可以通过两种方式实现。
只需将对象的每个属性与值添加到网址即例如。 /搜索property1 =值1&安培; property2 =值2 当然,每个值都应该是url编码的。
将整个对象序列化为json并通过post或get发送。看看https://www.newtonsoft.com/json如何做到这一点。发送请求可以通过简单的WebClient类完成。
答案 1 :(得分:1)
根据代码段,您需要将对象序列化为JSON。您可以在其他答案中使用已经链接的Json.Net。
以OP为例......
var request = new {
SearchWindowStart = "some_start_value",
SearchWindowEnd = "some_end_value",
ServiceId = "5f3b6e7f-48c0-e511-80d7-d89d67631c44",
Direction = '0',
NumberOfResults = 10,
UserTimeZoneCode = 1
};
//JSON.stringify(request)
var json = JsonConvert.SerializeObject(request);
var url = clientUrl + "/api/data/v8.0/Search(AppointmentRequest=@request)?@request=" + json;
从那里你可以根据需要使用URL。