【问题标题】:C# display XML from html POSTC# 从 html POST 显示 XML
【发布时间】:2012-09-09 05:20:29
【问题描述】:

这里有问题...如果我将 XML 文件放在服务器上,那么我可以通过 steamReader 读取它,转换为变量并让所有东西都在 MSSQL 数据库中运行。

但是,我需要通过 html POST 发送,并且它不适用于以下代码:

page.Response.ContentType = "text/xml";
StreamReader reader = new StreamReader(page.Request.InputStream);
inputString = reader.ReadToEnd();
deleteShip(inputString);

在我看来,上面的代码没有从我的程序中获取 POST 的 XML。因为对于deleteShip中的相同代码,如果我在服务器上使用xml,那么它可以正常工作。

有没有办法解决这个问题?只要我可以向 deleteShip(string s) 发送任何字符串,我就很高兴。该字符串将采用 XML 格式

感谢您的帮助!

【问题讨论】:

  • page.Response.ContentType = "text/xml"; 对请求没有影响。

标签: c# .net xml http-post


【解决方案1】:

看看如何将 XML 发布到您的程序中会很有用。通常,当使用 POST 方法时,数据从 HTML 表单作为 HTTP 请求正文中的名称-值对发送。从您的问题中不清楚您是否使用 HTML 表单将 XML 发布到您的程序,如果没有更多信息,很难判断可能出了什么问题。

从您的代码看来,您正在读取整个 HTTP 请求,您通常会在其中读取请求参数的值,例如:

Request["XmlParameterName"]

XmlParameterName 是 HTML 表单输入字段的名称。

您检查过inputString 变量的值吗?它是有效的 XML 吗?编码是否正确?是否有任何无效字符(如&符号)正确转义?

如果我提到的都不是问题,请用更多信息更新您的问题。

【讨论】:

  • 从iOS ASIHTTPRequest 传入appendPostData 方法
【解决方案2】:

好的,我把它修好了。 这是代码。

System.IO.Stream stream;
string inputString;
Int32 stringLength;

stream = Request.InputStream;
stringLength = Convert.ToInt32(stream.Length);
byte[] stringArray = new byte[stringLength];

inputString = System.Text.Encoding.ASCII.GetString(stringArray, 0, stringLength);

deleteShip(inputString); 

通过它,它将从我的 html 请求(在本例中为 XML)访问 POST 正文。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-03
    • 1970-01-01
    • 2015-05-16
    • 2014-08-09
    相关资源
    最近更新 更多