如何将对象附加到 URL
how to append an object to a URL
我需要能够将编码对象附加到 URI 以将其传递到 Web API 端点。
在post中,作者正在创建一个对象:
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;
然后他们将其附加到 URL:
var req = new XMLHttpRequest()
req.open("GET", clientUrl + "/api/data/v8.0/Search(AppointmentRequest=@request)?@request=" + JSON.stringify(request) , true);
我实际上无法修改 C sharp 代码,但是我有两个选择。第一个选项是将参数添加到 URL 我实际上不能修改 c# 代码但是我有两个选项。第一个选项是将参数添加到 URL 中,另一个选项是使用我想要的对象向请求中添加一个正文。
如果我提前知道对象的结构,我该如何将其包含在我的请求中?
您可以通过两种方式完成。
只需将具有值的对象的每个 属性 添加到 url 例如。 /search?property1=value1&property2=value2
当然每个值都应该url编码。
将整个对象序列化为json并通过post或get发送。看https://www.newtonsoft.com/json怎么做。发送请求可以通过简单的 WebClient class.
根据代码片段,您需要将对象序列化为 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。
我需要能够将编码对象附加到 URI 以将其传递到 Web API 端点。
在
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;
然后他们将其附加到 URL:
var req = new XMLHttpRequest()
req.open("GET", clientUrl + "/api/data/v8.0/Search(AppointmentRequest=@request)?@request=" + JSON.stringify(request) , true);
我实际上无法修改 C sharp 代码,但是我有两个选择。第一个选项是将参数添加到 URL 我实际上不能修改 c# 代码但是我有两个选项。第一个选项是将参数添加到 URL 中,另一个选项是使用我想要的对象向请求中添加一个正文。
如果我提前知道对象的结构,我该如何将其包含在我的请求中?
您可以通过两种方式完成。
只需将具有值的对象的每个 属性 添加到 url 例如。 /search?property1=value1&property2=value2 当然每个值都应该url编码。
将整个对象序列化为json并通过post或get发送。看https://www.newtonsoft.com/json怎么做。发送请求可以通过简单的 WebClient class.
根据代码片段,您需要将对象序列化为 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。