繁体   English   中英

从C#调用POST方法

[英]Calling a POST Method from C#

我的控制器中具有使用此方法的MVC Web API:

[HttpPost]
public void InsertSomething([FromBody] List<MyClass> newList)
{
    ...
}

MyClass:此类,在Android项目中与在WebAPI Project中相同。 它们具有相同的属性,类型和名称。

public class MyClass
{
   public int Id {get; set;}
   public string Name {get; set;}
}

我想从我的代码中调用它,但我不知道如何。 我正在使用xamarin Android。

这是我的代码尝试:

HttpClient client = new HttpClient();
List<MyClass> newList = new List<MyClass>();
newList.Add(new MyClass(){ Id = 5, Name = "test1"});
newList.Add(new MyClass(){ Id = 8, Name = "test2"});
string url = "http://localhost:57750/api/ControllerName/InsertSomething";
var content = new StringContent(JsonConvert.SerializeObject(newList),Encoding.UTF8,"application/json");
var result = client.PostAsync(url, content);

问题是我的代码没有调用web方法。

当我调试代码时,在调用client.PostAsync时,应用程序将一直处于等待状态。 没有异常被抛出。

有什么主意吗?

谢谢!

PS:对不起,我的英语不好xd

方法client.PostAsync返回一个Task,您应该使用异步等待模式等待

var result1 = await client.PostAsync(url, content);

或.Result调用,如下所示:

var result2 = client.PostAsync(url, content).Result;

在HttpClient发出请求之前,程序可能会退出,您应该显式等待调用结果。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM