Tôi có phương thức PostServer(string path, params object[] objects)
đăng bài json lên máy chủ của tôi. Nhưng trước khi tôi gửi mảng đối tượng của mình, tôi thêm một mã thông báo phiên vào mặt trước của nó.
string access_token = "<access_token>";
string url = "http://example.com";
void PostJson(string path, params object[] objects) {
SendHttp(url + path, HttpMethod.POST, JSON.Stringify(objects));
}
void PostServer(string path, params object[] objects) {
object[] moreObjects = new object[objects.Length + 1];
object[0] = access_token;
objects.CopyTo(moreObjects, 1);
PostJson(path, moreObjects); // moreObjects will be expanded into PostJson objects
}
Sau đó ... PostServer("/greet", "Hello World!", true, 3.1415);
sẽ gửi json ["<access token>","Hello World!",true,3.1415]
vào máy chủ của tôi.
Thực tế trong thực tế, tôi đặt moreObjects
ngay vào JSON.Stringify
nhưng bạn nhận được điểm.
Vì vậy, bạn có thể mở rộng mảng, nhưng bạn đã vượt qua một mảng làm tham số params duy nhất. Trong coffeescript bạn có thể làm PostJson(path, access_token, objects...)
, bởi vì nó có một nhà điều hành splat ...
.
Nếu bạn đã cố gắng PostJson(path, access_token, objects)
trong C# bạn sẽ kết thúc gửi json ["<access_token>",["Hello World!",true,3.1415]]
tôi có thể phải kết thúc bằng cách sử dụng điều phản ánh để làm cho nó làm việc theo cách tôi muốn, nhưng điều này là thú vị. Cảm ơn! –