c# - 从表单 POST 到外部 API
问题描述
我对 asp.net 很陌生
我正在使用 asp.net MVC 在 VS2019 中构建一个简单的解决方案,它应该将用户数据发送到另一个 API,该 API 将负责保存到数据库中。
到目前为止,这两个 API 都是 REST,我没有使用core
基本上,它是一个带有提交的表单,可以 POST 到外部项目,非常简单。我正在关注一些教程和东西,但是有很多不同的方式让我感到困惑,所以我决定在这里问
这是我到目前为止所拥有的
[HttpPost]
public async ActionResult Index(User user)
{
HttpClient client = new HttpClient();
client.BaseAddress = new Uri("https://pathtoAPI.com/");
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(
new MediaTypeWithQualityHeaderValue("application/json"));
User newuser = new User()
{
email = user.email,
nome = user.nome,
cpf = user.cpf,
cnpj = user.cnpj,
userName = user.userName,
senha = user.senha,
telefone = user.telefone
};
var jsonContent = JsonConvert.SerializeObject(newuser);
var contentString = new StringContent(jsonContent, Encoding.UTF8, "application/json");
contentString.Headers.ContentType = new
MediaTypeHeaderValue("application/json");
//contentString.Headers.Add("Session-Token", session_token);
HttpResponseMessage response = await client.PostAsync("register", contentString);
return Content($"{response}");
}
我想从其他 API 接收“OK”消息并将其打印在我的屏幕上,我正在使用该cshtml
文件来处理前面和表单。
虽然返回似乎是错误的,但它期望'null,task,task,或类似的东西。
有人可以帮我处理这段代码吗?
谢谢
解决方案
您需要返回响应的内容,而不是响应对象本身。
HttpResponseMessage response = await client.PostAsync("register", contentString);
string responseBody = await response.Content.ReadAsStringAsync();
return Content(responseBody);
推荐阅读
- angularjs - 如何在单元测试时伪造子组件
- python - 是否可以将此带有可变变量的 for 循环转换为列表理解?
- html - 如何使用 *ngFor 从 baseurl+filename 显示动态图像
- javascript - 从回调函数渲染 - 打字稿
- c# - 查找 $version$ /assemblyVersion 的 Nuget 运行时值
- tcl - 为什么“parsetcl”不产生输出?
- twilio - Twilio Studio 调查总结在最后
- asp.net-core - Azure、Office 和其他产品中的“切换用户”下拉菜单是否可用于集成到 AAD/B2C Web 应用程序?
- java - Java Web 应用程序 - 下载的文件不可读
- java - 全局设置 Hibernate 访问策略?