Asp.net web api 使用经典ASP.NET中的post参数调用ASP.NET WEB API方法
如何通过以xml格式发送post数据和recevie数据从经典ASP调用ASP.NET WEBAPI方法 下面是为此实现编写的代码:Asp.net web api 使用经典ASP.NET中的post参数调用ASP.NET WEB API方法,asp.net-web-api,Asp.net Web Api,如何通过以xml格式发送post数据和recevie数据从经典ASP调用ASP.NET WEBAPI方法 下面是为此实现编写的代码: public HttpResponseMessage Post([FromBody] string data) { var rspdata= data; return new HttpResponseMessage { Content = new StringContent(
public HttpResponseMessage Post([FromBody] string data)
{
var rspdata= data;
return new HttpResponseMessage
{
Content = new StringContent(rspdata, Encoding.UTF8, "application/xml")
};
}
Set HttpReq = Server.CreateObject("MSXML2.ServerXMLHTTP")
HttpReq.open "post", "api/conenter code heretrollername", False
HttpReq.send data="hello"
请帮帮我,这不是预期的wokring。我不知道如何从classic asp发出web请求。据我所知,问题在于无论何时提出请求,都需要使用适当的头。除非您更改asp.net web api的模型绑定器,否则它将只接受post方法的application/xml或application/json。发布xml或JSON后,它将尝试反序列化到您在WebAPI端定义的模型。在这种情况下,您必须创建一个新的RequestDTO并修改您的方法,如下所示:
public class RequestDTO{
public string Data {get; set;}
}
[HttpPost]
public HttpResponseMessage Post([FromBody] RequestDTO reqObj)
{
var rspdata= reqObj.Data;
return new HttpResponseMessage
{
Content = new StringContent(rspdata, Encoding.UTF8, "application/xml")
};
}
为了从ASP端执行此方法,需要将post数据序列化为JSON或XML。我在下面给出JSON:
{ "data" : "test" }
最后但并非最不重要的一点是,您应该设置内容类型:application/json
和Accept:application/xml
(仅当您需要xml作为Web API端的响应时)
希望这能有所帮助。您好,我试图使用fiddler执行上述方法,但RequestDTO始终为空。我正在使用fiddler执行上述方法。设置标题了吗?您的请求头肯定有问题。否,我正在将头设置为application/x-www-form-urlencoded。即使数据为空,我也使用fiddler诊断问题用户代理:fiddler用户代理:fiddler Accept:application/json内容类型:application/json主机:localhost:2371内容长度:9{“data”:“4”}现在我可以在controller方法中看到发布的数据,现在我尝试使用相同的格式来返回xml格式,而不是json用户代理:Fiddler Accept:application/xml Content type:application/xml Host:localhost:2371 Content Length:11 data=4这段代码不起作用。请帮帮我