Как получить маркер учетных данных пароля типа 0auth grand с помощью httpwebrequest?
Я создал метод, чтобы получить токен. Мой запрос токена отправляет параметры в виде application/x-www-form-urlencoded. Он принимает учетные данные в качестве форм-данных. Когда я получаю токен, я хочу использовать его в своем методе Send request, где я определил свой параметр string token. Как передать все учетные данные в моем методе getAccessToken??
grant_type = пароль
username = имя пользователя
пароль = пропуск
объем = объем
client_id = клиент
client_secret = api
private string SendRequest(HttpWebRequest request, string token, string queryParams) { HttpWebResponse response = null; if(token != null) { request.Headers.Add("Authorization", "Bearer" + token); } request.ContentType = "application/json"; try { response = (HttpWebResponse)request.GetResponse(); } catch (WebException wex) { if (wex.Response == null) return JSON_ERROR; using (var errorResponse = (HttpWebResponse)wex.Response) { using (var reader = new StreamReader(errorResponse.GetResponseStream())) { return reader.ReadToEnd(); //expected error from JSON } } } var responseVal = new StreamReader(stream: response.GetResponseStream()).ReadToEnd(); return responseVal; }
Что я уже пробовал:
public static string getAccessToken() { var httpWebRequest = (HttpWebRequest)WebRequest.Create( "http://identity-authority.int-spirion.com/connect/token"); httpWebRequest.ContentType = "application/json"; httpWebRequest.Method = "POST"; using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream())) { string input = "{}"; streamWriter.Write(input); streamWriter.Flush(); streamWriter.Close(); } var authResponse = (HttpWebResponse)httpWebRequest.GetResponse(); string response; using (var streamReader = new StreamReader(authResponse.GetResponseStream())) { response = streamReader.ReadToEnd(); } var authResponseJson = responseHandler.ConvertResponseToJson(authResponse); Assert.AreEqual(authResponse.StatusCode, HttpStatusCode.OK); string token = authResponseJson["access_token"].ToString(); return token; }