本文整理汇总了C#中AccessToken.GetType方法的典型用法代码示例。如果您正苦于以下问题:C# AccessToken.GetType方法的具体用法?C# AccessToken.GetType怎么用?C# AccessToken.GetType使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类AccessToken
的用法示例。
在下文中一共展示了AccessToken.GetType方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: ExecuteRequest
/// <summary>
/// Performs a request.
/// </summary>
/// <param name="method">HTTP Method: <b>POST</b> (default), <b>PUT</b>, <b>GET</b> or <b>DELETE</b>.</param>
/// <param name="endpoint">URL to which will be sent to request.</param>
/// <param name="parameters">Parameters to be passed to request.</param>
/// <param name="authorization">Authorization header value.</param>
/// <param name="headers">HTTP headers for web request.</param>
/// <param name="contentType">The value of the <b>Content-Type</b> HTTP header.</param>
/// <param name="accessToken">Access token to be used in the request.</param>
/// <remarks>
/// <para>Can not be used simultaneously <paramref name="accessToken"/> and <paramref name="authorization"/>. Use only one of these parameters.</para>
/// </remarks>
/// <returns>Returns an instance of the <see cref="RequestResult"/> class, which contains the result of the request.</returns>
/// <exception cref="System.ArgumentNullException"></exception>
/// <exception cref="RequestException"></exception>
/// <exception cref="ArgumentException">
/// <para>The exception occurs when the query parameters are specified at the same time <paramref name="authorization"/> and <paramref name="accessToken"/>.</para>
/// </exception>
public static RequestResult ExecuteRequest(string method = "POST", string endpoint = null, HttpParameterCollection parameters = null, HttpAuthorization authorization = null, NameValueCollection headers = null, string contentType = null, AccessToken accessToken = null)
{
// checking
if (String.IsNullOrEmpty(endpoint)) { throw new ArgumentNullException("endpoint"); }
if (!AccessToken.IsNullOrEmpty(accessToken) && authorization != null)
{
throw new ArgumentException("The request can not contain both authorization headers and access token.");
}
// set default values
if (!String.IsNullOrEmpty(method)) { method = method.ToUpper(); }
string[] post = { "POST", "PUT" };
if (String.IsNullOrEmpty(method) || (parameters != null && (parameters.HasFiles || parameters.IsRequestBody) && Array.IndexOf(post, method) == -1))
{
method = "POST";
}
bool isPost = Array.IndexOf(post, method) != -1;
// set protocols
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls;
// ignore errors
ServicePointManager.ServerCertificateValidationCallback = (sender, cert, chain, sslPolicyErrors) => true;
// --
// access token
if (!AccessToken.IsNullOrEmpty(accessToken))
{
if (accessToken.GetType() == typeof(OAuth2AccessToken) || accessToken.GetType().IsSubclassOf(typeof(OAuth2AccessToken)))
{
// is oauth 2.0
var token = (OAuth2AccessToken)accessToken;
if (!String.IsNullOrEmpty(token.TokenType) && (token.TokenType.Equals(AccessTokenType.Bearer, StringComparison.OrdinalIgnoreCase))) // || token.TokenType.Equals(AccessTokenType.OAuth, StringComparison.OrdinalIgnoreCase)
{
// bearer
authorization = new HttpAuthorization(AuthorizationType.Bearer, accessToken.Value);
}
else
{
// other
if (parameters == null) { parameters = new HttpParameterCollection(); }
parameters.AddUrlParameter("access_token", accessToken.Value);
}
}
else if (accessToken.GetType() == typeof(OAuthAccessToken) || accessToken.GetType().IsSubclassOf(typeof(OAuthAccessToken)))
{
// is oauth 1.0
authorization = new OAuthAuthorization(accessToken);
}
else
{
// I do not know that. But it's definitely need to consider.
if (parameters == null) { parameters = new HttpParameterCollection(); }
parameters.AddUrlParameter("access_token", accessToken.Value);
}
}
// --
string requestUrl = endpoint; // need source endpoint for signature
if (!isPost && parameters != null && parameters.Count > 0)
{
// set parameters to the URL if the request is executed using the GET method
requestUrl += (requestUrl.Contains("?") ? "&" : "?");
requestUrl += parameters.ToStringParameters();
}
else if (isPost && parameters != null && parameters.Count > 0)
{
// is POST or PUT method
if (parameters.IsRequestBody)
{
// all parameters to url
HttpParameterCollection p = parameters.Where(itm => itm.ParameterType != HttpParameterType.RequestBody).ToArray();
if (p.Count > 0)
{
requestUrl += (requestUrl.Contains("?") ? "&" : "?");
requestUrl += p.ToStringParameters();
}
}
else
{
// url parameters to endpoint
//.........这里部分代码省略.........