gpt4 book ai didi

c# - 获取发送的 XML 文档

转载 作者:太空宇宙 更新时间:2023-11-03 14:20:48 27 4
gpt4 key购买 nike

我有 2 个项目 -- 1 个纯粹是一个 .ashx 通用处理程序,另一个是向其发布 XML 文档的测试项目。如何获取发布的 XML 文档?

客户端代码是(为简洁起见缩短)

    string xmlToSend = "<?xml version=\"1.0\" encoding=\"utf-8\" ?><APPLICATION>  <TRANSACTIONTYPE>12</TRANSACTIONTYPE></APPLICATION>";
WebRequest webRequest = WebRequest.Create(new Uri("http://localhost:8022/handle.ashx"));
webRequest.ContentType = "text/xml";
webRequest.Method = "POST";
byte[] bytes = Encoding.ASCII.GetBytes(xmlToSend);
Stream os = null;
webRequest.ContentLength = bytes.Length;
os = webRequest.GetRequestStream();
os.Write(bytes, 0, bytes.Length);
os.Close();
WebResponse webResponse = webRequest.GetResponse();
//if (webResponse == null)
//{ return null; }
StreamReader sr = new StreamReader(webResponse.GetResponseStream());
string sRet = "";
sRet = sr.ReadToEnd().Trim();

接收码为

public void ProcessRequest(HttpContext context)
{
// Well, not sure what to do here.
// context.Request.Params has a count of 48, but doesn't have the XML.
// context.Request.Form has a count of 0

}

我知道我在这里遗漏了一些基本的东西。但我一辈子都弄不明白。

请不要建议使用 WCF,除非这是我要让它工作的唯一方法。我发现 WCF 启动和运行起来非常困难和挑剔。

我什至无法让我的处理程序在我的断点处中断,但我知道它正在被调用(我已经多次更改它以返回日期、日期和时间,以及我输入的一些乱码字符串,所以我知道它正在被调用并且可以响应。)

最佳答案

context.Request.InputStream包含您要查找的数据。

微软的例子:

System.IO.Stream str; String strmContents;
Int32 counter, strLen, strRead;
// Create a Stream object.
str = Request.InputStream;
// Find number of bytes in stream.
strLen = Convert.ToInt32(str.Length);
// Create a byte array.
byte[] strArr = new byte[strLen];
// Read stream into byte array.
strRead = str.Read(strArr, 0, strLen);

// Convert byte array to a text string.
strmContents = "";
for (counter = 0; counter < strLen; counter++)
{
strmContents = strmContents + strArr[counter].ToString();
}

处理文本时还有其他更好的方法,例如 StreamReader或使用 StringBuilder 连接.

关于c# - 获取发送的 XML 文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5464199/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com