使用来自经典ASP的post参数调用ASP.NET WEB API方法

时间:2014-04-17 18:00:04

标签: asp.net-web-api

如何通过以xml格式发送帖子数据和接收数据,从经典asp调用ASP.NET WEBAPI方法?

以下是为此实现编写的代码:

    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"

请帮帮我,不按预期进行操作。

1 个答案:

答案 0 :(得分:0)

我不知道如何从经典asp发出网页请求。据我所知,问题在于,无论何时发出请求,您都需要使用正确的标头。除非你更改asp.net web api的模型绑定器,否则它只接受application / xml或application / json for post方法。一旦发布xml或JSON,它将尝试反序列化到您在web api端定义的模型。在这种情况下,您必须创建一个新的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端执行此方法,您需要将发布数据序列化为JSON或XML。我在下面给出了JSON:

{ "data" : "test" }

最后但并非最不重要的是,您应该设置Content-Type : application/jsonAccept:application/xml(仅当您需要XML作为Web API方面的响应时)

希望这有帮助。