C# 在MVC操作方法中调用http post?
我正在使用C# 在MVC操作方法中调用http post?,c#,asp.net-mvc-4,dotnet-httpclient,C#,Asp.net Mvc 4,Dotnet Httpclient,我正在使用HttpClient在操作方法中调用一个POST,但我不确定它是否正确执行。我不需要它是异步的。基本上,如果在我的系统上成功创建了用户,我会在另一个系统中创建它们。以下是我正在调用的代码: using (var client = new HttpClient()) { var postData = new FormCollection(); postData["api_token"] = ConfigurationMan
HttpClient
在操作方法中调用一个POST,但我不确定它是否正确执行。我不需要它是异步的。基本上,如果在我的系统上成功创建了用户,我会在另一个系统中创建它们。以下是我正在调用的代码:
using (var client = new HttpClient())
{
var postData = new FormCollection();
postData["api_token"] = ConfigurationManager.AppSettings["ApiToken"];
postData["api_action"] = "Save";
postData["customer_email"] = userName;
postData["customer_password"] = password;
var result = client.PostAsync(string.Format("{0}/api", ConfigurationManager.AppSettings["Url"]), content).Result;
var xmlResponse = result.Content.ReadAsStringAsync().Result;
}
以下两行:
var result = client.PostAsync(string.Format("{0}/api", ConfigurationManager.AppSettings["Url"]), content).Result;
var xmlResponse = result.Content.ReadAsStringAsync().Result;
应重构为以下内容:
var result = await client.PostAsync(string.Format("{0}/api", ConfigurationManager.AppSettings["Url"]), content);
var xmlResponse = await result.Content.ReadAsStringAsync();
您必须使用await
,否则会阻止线程在异步方法末尾调用结果。此外,您不应该忘记相应的操作应该返回一个任务
public异步任务ActionName()
你的问题到底是什么?@ToddMenier-我说得对吗?嗨,当我这样做时,我不会在xmlResponse中返回xml字符串,它会返回一个HttpResponseMessage,这是我不想要的,我想要xml,所以我可以开始解析它。
public async Task<ActionResult> ActionName()