xml - 如何将 XML 发布到 MVC Controller 中? (而不是键/值)

标签 xml asp.net-mvc fiddler

使用 Fiddler 我可以传入 body

someXml=ThisShouldBeXml

然后在 Controller 中

    [HttpPost]
    public ActionResult Test(object someXml)
    {
        return Json(someXml);
    }

以字符串形式获取此数据

如何让 fiddler 将 XML 传递给 MVC ActionController?如果我尝试将正文中的值设置为原始 xml,则它不起作用。

对于奖励积分,我如何从 VBscript/Classic ASP 执行此操作?

我现在有

DataToSend = "name=JohnSmith"

          Dim xml
         Set xml = server.Createobject("MSXML2.ServerXMLHTTP")
   xml.Open "POST", _
             "http://localhost:1303/Home/Test", _
             False
 xml.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
 xml.send DataToSend

最佳答案

您不能直接将 XML 数据作为文件传递给 MVC Controller 。最好的方法之一是使用 HTTP post 将 XML 数据作为 Stream 传递。

对于发布 XML,

  1. 将 XML 数据转换为流并附加到 HTTP header
  2. 设置内容类型为“text/xml; encoding='utf-8'”

引用this stackoverflow post有关将 XML 发布到 MVC Controller 的更多详细信息

要在 Controller 中检索 XML,请使用以下方法

[HttpPost] 
public ActionResult Index()
{
    HttpWebResponse response = (HttpWebResponse)request.GetResponse();

    if (response.StatusCode == HttpStatusCode.OK)
    {
        // as XML: deserialize into your own object or parse as you wish
        var responseXml = XDocument.Load(response.GetResponseStream());

        //in responseXml variable you will get the XML data
    }
}

关于xml - 如何将 XML 发布到 MVC Controller 中? (而不是键/值),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17951384/

相关文章:

c# - DataGridView C#绑定(bind)多个List

java - 在 JAXBContext 中使用 XML 将 XML 转换为类时出现一些问题

web-services - 如何在 fiddler 中编写对 REST Web 方法的请求

php - 批量导入/更新数据到数据库

php - 调用未定义的方法 DOMNodeList::getElementsByTagName() PHP

c# - 调试器不会因错误而停止

asp.net-mvc - 将用户过滤的查询参数存储在数据库表中的最佳方法是什么?

jquery - 使用 MVC PartialView 运行 jquery 脚本 block

http - Fiddler 不会捕获来自 Insomnia 的请求,但会捕获来自 Postman 的请求

c# - 为什么我的C#gzip生成的文件比Fiddler或PHP大?