我正在使用 WebApi Client 发布到 WebApi 测试项目。我的控制器上的 post 方法接受单个参数(模型)。
如果我使用 JSON 发布,一切正常。如果我使用 XML 发布,则该参数始终为空。这是一个错误吗?
var client = new HttpClient();
// on the server side, the loan param will be null
var response = client.PostAsXmlAsync(
"http://localhost.fiddler:54835/api/Loan/PostLoan",
new Loan() { LoanId = 1 }).Result;
// on the server side, the loan param is just fine
var response = client.PostAsJsonAsync(
"http://localhost.fiddler:54835/api/Loan/PostLoan",
new Loan() { LoanId = 1 }).Result;
这两个电话之间的唯一区别是,一个是我在打电话PostAsXmlAsync
,另一个是我在打电话PostAsJsonAsync
。
这是我的控制器的信号(我正在使用基于操作的路由):
[HttpPost]
public void PostLoan(Loan loan)
{
Debug.WriteLine(loan.LoanId);
}
这是我的测试模型:
public class Loan
{
public int LoanId { get; set; }
}
这是我的路线:
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{action}/{id}",
defaults: new { action = "get", id = RouteParameter.Optional }