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()