Мне трудно вызывать функцию в том же контроллере.
Это моя функция, которая вызывает функцию GetToken
[HttpPost]
public ActionResult FileLoad()
{
using (var reader = new StreamReader("C:\\somedirectory\\Payout.csv"))
using (var csv = new CsvReader(reader))
{
csv.Configuration.RegisterClassMap<FundTransferMap>();
var json = JsonConvert.SerializeObject(csv.GetRecords<FundTransfer>());
//Response.Write(json);
TempData["FileJson"] = json;
return RedirectToAction("GetToken");
}
}
Эта функция должна вызываться первой функцией
[HttpPost]
private async Task<ActionResult> GetToken()
{
var client = new HttpClient();
var httpRequestMessage = new HttpRequestMessage
{
Method = HttpMethod.Post,
RequestUri = new Uri("https://some-url.com//token"),
Headers = {
//{ HttpRequestHeader.Authorization.ToString(), "Bearer xxxxxxxxxxxxxxxxxxxx" },
{ HttpRequestHeader.Accept.ToString(), "application/json" },
{ HttpRequestHeader.ContentType.ToString(), "application/x-www-form-urlencoded"},
{ "client-id", "client-id"},
{ "client-secret","client-secret"},
{ "partner-id","partner-id"},
{ "X-Version", "1" }
},
Content = new FormUrlEncodedContent(new Dictionary<string, string>
{
{ "client_id", "clientid" },
{ "grant_type", "password" },
{ "username", "username" },
{ "password", "p@ssw0rd" },
{ "scope", "scope" }
})
};
var response = client.SendAsync(httpRequestMessage).Result;
var payload = JObject.Parse(await response.Content.ReadAsStringAsync());
TempData["accessToken"] = payload.Value<string>("access_token");
}
return View();
Но этот код выдает ошибку во время выполнения, потому что это функция àsync
. Я также не хотел, чтобы вторая функция возвращала что-то.