gpt4 book ai didi

json - Asp.Net Web Api 中 HttpGet 和 HttpPost 的区别

转载 作者:行者123 更新时间:2023-12-04 04:38:44 25 4
gpt4 key购买 nike

我是 web api asp.net MVC 的初学者,我遇到了问题。
我有一个将在 web api HttpGet 和 HttpPost 中使用的类:

public class Credit
{
public string Log {get; set;}
public string Pas {get; set;}
}

在示例 API Controller 中,我有:
[HttpGet]
public void Login (Credit credit)
{
}

[HttpPost]
public void Login (Credit credit)
{
}

在谷歌浏览器的 RestConsole 中测试这些方法,发送 json 数据:
{"Log", "test", "Pas": "test"}

在调试这些方法时,我看到 HttpPost 工作正常,并且“credit”参数填充了属性。
但是 HttpGet 不能正常工作,对象没有填充属性,它是 NULL。
有人可以向我解释这种情况,以及如何在 HttpGet 中获取完整的对象?

最佳答案

这是因为 Web API 如何从 HTTP 请求创建参数值。

默认情况下,如果参数是“复杂”类型(例如您的 Credit 类),Web API 从请求正文中获取参数值。如果参数是“简单”类型(例如,int 或 string),则 Web API 从请求 URI 中获取值。

但是,HTTP GET 请求不能有请求正文。因此,默认情况下您不能将复杂类型传递给 Web API“GET”方法。

您可以在这里阅读更多信息:http://www.asp.net/web-api/overview/formats-and-model-binding/parameter-binding-in-aspnet-web-api

在任何情况下,对于 Login 方法,您可能应该使用 POST 请求,而不是 GET 请求。

关于json - Asp.Net Web Api 中 HttpGet 和 HttpPost 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19254603/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com