예제 #1
0
 private void InitRequestDebug(RequestBaseBase request)
 {
     AddDebug(string.Format("Calling API {0} / {1}", request.Controller, request.Method));
     AddDebug(string.Format("Requires TOKEN? {0}", request.RequiresApiToken));
     AddDebug(string.Format("Requires SERVICEID? {0}", request.RequiresServiceId));
     AddDebug("-----");
     AddDebug("Initializing...");
     AddDebug(string.Format("URL    : {0}", request.Url));
     AddDebug(string.Format("PARAMS : {0}", request.ToQueryString(APISettings.ServiceID)));
     AddDebug("-----");
 }
예제 #2
0
        public async Task <string> PerformRequestAsync(RequestBaseBase request, CancellationToken cancellationToken = default)
        {
            if (Settings.ProxyConfigurationInjector != null)
            {
                throw new NotImplementedException($"PerformRequestAsync not implemented yet with {nameof(Settings.ProxyConfigurationInjector)}");
            }

            if (request.RequiresApiToken)
            {
                request.ApiToken = Settings.ApiToken;
            }
            if (request.RequiresServiceId)
            {
                request.ServiceId = Settings.ServiceID;
            }

            var httpRequestContent = new FormUrlEncodedContent(request.GetParametersDictionary(Settings.ServiceID));

            httpRequestContent.Headers.ContentType.MediaType = WWWUrlContentType;

            using var httpRequest = new HttpRequestMessage(HttpMethod.Post, $"{Settings.Endpoint}/{request.Url}")
                  {
                      Content = httpRequestContent,
                  };

            httpRequest.Headers.Accept.Clear();
            httpRequest.Headers.Accept.ParseAdd(ApplicationJsonContentType);
            httpRequest.Headers.UserAgent.Add(new ProductInfoHeaderValue("PAYNL_SDK_DOTNET_CORE", ClientVersion));

            var response = await InternalHttpClient.SendAsync(httpRequest, cancellationToken)
                           .ConfigureAwait(false);

            var responseContent = await response.Content.ReadAsStringAsync().ConfigureAwait(false);

            request.RawResponse = responseContent;

            return(responseContent);
        }
예제 #3
0
 private void DebugRawResponse(RequestBaseBase request)
 {
     AddDebug("RAW Result from PAYNL");
     AddDebug(request.RawResponse);
 }