6

After hours of searching the internet I decided to ask you guys for a little help.

I've written an Web API with couple of simple get/post methods. I'm using Individual user accounts authentication method.

Using the HttpClient I've managed to successfully call every AUTHORIZED get and post method as well as the /token endpoint used for generating authorization token.

The problem is that I must call these methods inside .NET Framework 3.5 project. So I've tried using WebClient to do this because I read that the HttpClient is not supported in .NET Framework 3.5.

GetAPIToken() METHOD generates Bearer token and it works.

 private static string GetAPIToken(string userName, string password, string apiBaseUri)
    {
        using (WebClient client = new WebClient())
        {
            client.Headers.Add("Content-Type", "application/x-www-form-urlencoded");
            var response = client.UploadString(apiBaseUri + "/Token", "POST", "grant_type=password&username=" + userName + "&password=" + password);
            var jObject = JObject.Parse(response);
            return jObject.GetValue("access_token").ToString();
        }
    }

This GET method works when I remove [Authorize] attribute from the Web API but I can't make it work when authorized.

    //GET ODRAĐENI POSTUPCI
    private static string GetOdradjeniPostupci(int Id, string token)
    {
        string apiBaseUri = "http://localhost:60511/";
        string serviceUrl = apiBaseUri + "api/ZOdradjeniPostupci";

        using (WebClient client = new WebClient())
        {
            client.Headers.Clear();
            client.Headers.Add("Content-Type", "application/json");
            client.Headers.Add("Authorization", "Bearer " + token);
            var response = client.DownloadString(serviceUrl + "/GetZOdradjeniPostupci?cZdrUst=" + Id.ToString());

            return response;
        }
    }

I get error 401 unathorized no matter what I try. (Different combinations from the internet regarding Authorization header). Hope you could give me any advice on how to solve this.

I would appreciate it a lot.

Thanks.

Denis Lazendić
  • 177
  • 1
  • 12

0 Answers0