none
403 Forbidden error using Webrequest but works in postman RRS feed

  • Question

  • I have a Authorization code which i need to pass in body with some header value when calling a api. when trying the same from postman its working fine but C# Webclient throwing 403 error.

    Code below:-

       public string GetResponse(string AuthCode)
            {

        string url = "https://example.com//openam/oauth2/access_token?grant_type=authorization_code&realm=/cbpgatqa";
                Uri uri = new Uri(string.Format(url));

                ASCIIEncoding encoding = new ASCIIEncoding();
                string postData = "code=" + AuthCode + "&redirect_uri=" + "http://localhost:8080";
                byte[] data = Encoding.GetEncoding("UTF-8").GetBytes(postData);

                // Create the request
                var httpWebRequest = (HttpWebRequest)WebRequest.Create(uri);
                httpWebRequest.Proxy.Credentials = System.Net.CredentialCache.DefaultCredentials;
                httpWebRequest.Headers.Add(HttpRequestHeader.Authorization, "Basic " + AuthCode);
                httpWebRequest.ContentType = "application/json";
                httpWebRequest.Method = "POST";
                httpWebRequest.ContentLength = data.Length;
                httpWebRequest.UserAgent = @"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.106 Safari/537.36";

                Stream stream = httpWebRequest.GetRequestStream();
                stream.Write(data, 0, data.Length);
                stream.Close();

                // Get the response
                HttpWebResponse httpResponse = null;
                try
                {
                    httpResponse = (HttpWebResponse)httpWebRequest.GetResponse();
                }
                catch (Exception ex)
                {
                    Console.WriteLine("Exception while getting resource " + ex.Message);
                    return null;
                }

                string result = null;
                using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
                {
                    result = streamReader.ReadToEnd();
                }

                return result;

    }

    Postman Curl command:-

    Generated from a curl request:

    curl -X POST 
    'https://example.com//openam/oauth2/access_token?grant_type=authorization_code&realm=/cbpgatqa' 
    -H 'Authorization: Basic MzE4OGQwYjQtZTRlOC00MTZjLTg5NjAtZDNlYWFhMmNjY2IxOkx3NiVBa0x4NWtPM01rJTJ5RWwxbW1jR0ZYZmhTQmk1NHhIRCpzNiUyVUd5WXN0MCNVbyNMNWQhcVlpZE93djc=' 
    -H 'Cache-Control: no-cache' 
    -H 'Content-Type: application/x-www-form-urlencoded' 
    -d 'code=93317468-7464-4804-b38a-43e13265c4ac&redirect_uri=http%3A%2F%2Flocalhost%3A8080%2F'

    I am not able to figure it out the issue . Can anyone please help me

    Saturday, March 31, 2018 2:46 PM

All replies