public void HttpRequestParamTest() { HttpRequest httpRequest = new HttpRequest(); httpRequest.SetCommonUrlParameters(); httpRequest.AddUrlParameter("key", "value"); Assert.Equal("value", httpRequest.UrlParameters["key"]); Assert.Equal(5, httpRequest.UrlParameters.Count); httpRequest.Headers.Add("testHeader", "test"); Assert.Equal("test", httpRequest.Headers["testHeader"]); httpRequest.ConnectTimeout = 10000; Assert.Equal(10000, httpRequest.ConnectTimeout); httpRequest.Content = new byte[] { }; Assert.NotNull(httpRequest.GetHttpContentString()); httpRequest.ContentType = FormatType.Json; Assert.Equal(FormatType.Json, httpRequest.ContentType); httpRequest.Encoding = "UTF-8"; Assert.Equal("UTF-8", httpRequest.Encoding); httpRequest.Method = MethodType.Post; Assert.Equal(MethodType.Post, httpRequest.Method); httpRequest.ReadTimeout = 20000; Assert.Equal(20000, httpRequest.ReadTimeout); httpRequest.Url = "www.test.com"; Assert.Equal("www.test.com", httpRequest.Url); }
private IAlibabaCloudCredentials GetNewSessionCredentials(IConnClient client) { HttpRequest httpRequest = new HttpRequest(); httpRequest.SetCommonUrlParameters(); httpRequest.AddUrlParameter("Action", "GenerateSessionAccessKey"); httpRequest.AddUrlParameter("Format", "JSON"); httpRequest.AddUrlParameter("Version", "2015-04-01"); httpRequest.AddUrlParameter("DurationSeconds", durationSeconds.ToString()); httpRequest.AddUrlParameter("AccessKeyId", PublicKeyId); httpRequest.AddUrlParameter("RegionId", regionId); string strToSign = ParameterHelper.ComposeStringToSign(MethodType.Get, httpRequest.UrlParameters); String signature = ParameterHelper.SignString(strToSign, PrivateKey + "&"); httpRequest.AddUrlParameter("Signature", signature); httpRequest.Method = MethodType.Get; httpRequest.ConnectTimeout = connectTimeout; httpRequest.ReadTimeout = readTimeout; httpRequest.Url = ParameterHelper.ComposeUrl("sts.aliyuncs.com", httpRequest.UrlParameters, "https"); HttpResponse httpResponse = client.DoAction(httpRequest); if (httpResponse != null && httpResponse.Status != 200) { throw new CredentialException("Failed to get session credentials.HttpCode=" + httpResponse.Status); } Debug.Assert(httpResponse != null, "httpResponse != null"); dynamic contentObj = JsonConvert.DeserializeObject <dynamic>(httpResponse.GetHttpContentString()); string sessionAccessKeyId; string sessionAccessKeySecret; string expirationStr; try { sessionAccessKeyId = contentObj.SessionAccessKey.SessionAccessKeyId; sessionAccessKeySecret = contentObj.SessionAccessKey.SessionAccessKeySecret; expirationStr = contentObj.SessionAccessKey.Expiration; } catch { throw new CredentialException("Invalid json got from service."); } expirationStr = expirationStr.Replace('T', ' ').Replace('Z', ' '); var dt = Convert.ToDateTime(expirationStr); long expiration = dt.GetTimeMillis(); return(new RsaKeyPairCredential(sessionAccessKeyId, sessionAccessKeySecret, expiration, this)); }