private void SendApiRequest(IChinaAlibabaApi api, object args, Action <Exception, string> callback) { string apiUri = api.GetRequestUri(this.m_appKey); IDictionary <string, string> arguments = AlibabaHelper.GetArgumentsDictionary(args); if (api.NeedAuthroized) { arguments[ACCESS_TOKEN_ARGUMENT_NAME] = this.m_accessToken; } if (api.NeedTimestamp) { arguments[TIMESTAMP_ARGUMENT_NAME] = (DateTime.Now - this.m_timestampBase).TotalMilliseconds + this.m_timeError.ToString(); } if (api.NeedSignature) { arguments[SIGNATURE_ARGUMENT_NAME] = AlibabaHelper.GetApiSignature(apiUri, arguments, this.m_appSecret); } this.SendPostRequest(apiUri, arguments, api.Encoding, callback); }
public void GetArgumentsDictionaryTest() { DateTime now = DateTime.Now; object args = new { a = 13, b = true, c = "xphter", d = now, e = new int[] { 123, 456, }, f = new string[] { "123", "456", }, }; IDictionary <string, string> actual = AlibabaHelper.GetArgumentsDictionary(args); Assert.AreEqual(actual["a"], "13"); Assert.AreEqual(actual["b"], "true"); Assert.AreEqual(actual["c"], "xphter"); Assert.AreEqual(actual["d"], AlibabaHelper.NetTimeToAlibabaTime(now)); Assert.AreEqual(actual["e"], "[123,456]"); Assert.AreEqual(actual["f"], "[\"123\",\"456\"]"); }