- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我卡在了这个 httpWebRequest 问题上。我需要将 XML 发送到网站。但我的要求不断得到否定的回应。我看到了一些设置了 ContentLength 的代码示例……这可能是问题所在,但我不知道……
用 writePaymentRequest(...) 编写的 XML 完全符合网站的需要,因为他们得到了我的 xml 标记并且他们成功了,不过是用另一种编程语言。结果只包含他们的错误,而不是我应该收到的信息。
我无法设置内容长度,因为我在创建带有请求流的编写器时不知道长度。
HttpWebRequest httpWebRequest = (HttpWebRequest)HttpWebRequest.Create("https://some.website.com");
httpWebRequest.Method = "POST";
httpWebRequest.ContentType = "application/x-www-form-urlencoded";
using (writer = new XmlTextWriter(httpWebRequest.GetRequestStream(), System.Text.Encoding.UTF8))
{
writePaymentRequest(writer, registrant, amount, signature, ipaddress);
}
HttpWebResponse httpWebResponse = (HttpWebResponse)httpWebRequest.GetResponse();
StreamReader streamReader = new StreamReader(httpWebResponse.GetResponseStream());
String stringResult = streamReader.ReadToEnd();
streamReader.Close();
最佳答案
如果您首先将 XmlTextWriter 写入类似 MemoryStream 的内容,您就会知道长度。从那里,您可以获取字节,将 httpWebRequest.ContentLength 设置为字节数组的长度,然后将字节数组写入您的请求
编辑
你的代码的中间部分看起来像这样(我认为):
MemoryStream ms = new MemoryStream();
using (writer = new XmlTextWriter(ms, System.Text.Encoding.UTF8))
{
writePaymentRequest(writer, registrant, amount, signature, ipaddress);
}
byte[] bytes = ms.ToArray();
ms.Close();
httpWebRequest.GetRequestStream().Write(bytes, 0, bytes.Length);
httpWebRequest.ContentLength = bytes.Length;
编辑 #2
代替 XmlTextWriter(ms, System.Text.Encoding.UTF8)
,试试 XmlTextWriter(ms, new UTF8Encoding(false))
看看是否修复了编码问题
关于c# - Stream 和 XmlTextwriter.... 未正确收到请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2177231/
我正在使用 XMLTextWriter 动态创建 XML 文档(在 VB.Net 中)。 我希望空标签看起来像这样 - 而不是这个 - 所以,我使用 WriteFullEndElement 来结束元
下面的语句有什么问题? XmlTextWriter writer = new XmlTextWriter(@"D:\project\data\" + System.DateTime.Today + @
.NET 的 XmlTextWriter 创建无效的 xml 文件。 在 XML 中,一些控制字符是允许的,例如“水平制表符”( ),但其他的则不允许,例如“垂直制表符”()。 (参见 spec。)
所以我在这里处理一些核心的旧版代码。我们正在谈论.NET 2.0。我的问题是我的程序在运行时会吐出一个异常,并显示信息说没有为标准XML找到数据。我正在使用XMLTextWriter类。因为这是工作,
我有一个页面,我只是在其中将一堆 XML 数据写入屏幕。它进行了几次数据库调用以获取所有数据: XmlTextWriter writer = new XmlTextWriter(Response.Ou
我正在处理一些非常复杂的代码,这些代码使用 XmlTextwriter 写入内存流。 Visual Studio 调试中有没有一种方法可以在我单步执行代码时查看 memorystream/XmlTex
我有一个试图保存为 xml 的结构,创建小的 XML 似乎没有问题,但是对于较大的文件,它似乎嵌套了后面的标签,对于前 30 个左右我我得到格式正确的结果: 2video.avi40 但是,一段时间后
我正在尝试创建一个信息路径表单 XML 文件。我最初是在关注这个例子 programmatically-create-infopath-form-console-app但我遇到了多个 namespac
是否可以重用 XmlTextWriter 类的同一个实例来生成更多的 xml 文档?我的意思是这样的: XmlTextWriter writer = new XmlTextWriter(); writ
我正在使用 XmlTextWriter 及其 WriteElementString 方法,例如: XmlTextWriter writer = new XmlTextWriter("filename.
我正在尝试从提供 Xml 内容的自定义 HttpHandler 中尽可能多地发挥性能。 我想知道哪个对性能更好。使用 XmlTextWriter 类或临时 StringBuilder 操作,例如: S
我卡在了这个 httpWebRequest 问题上。我需要将 XML 发送到网站。但我的要求不断得到否定的回应。我看到了一些设置了 ContentLength 的代码示例……这可能是问题所在,但我不知
当我遇到有人使用 XmlTextWriter 时,我正在使用 XmlSerializer。 这两者有什么区别? 对我来说,它们具有创建 XML 文件的相同功能。 Microsoft 网站说 XmlTe
这个方法有什么作用,为什么需要它? “go to definition”选项将我带到一个包含所有注释的函数,下面是它的用途 //Writes the XML declaration with the
我正在处理一个处理 C# 中字符串本地化的大型 XML 文件。我没有编写生成 XML 的程序,但我可以访问源代码并且我想修改它,因为它当前输出 1.0 作为版本,但它在文档中包含非法字符。 这是代码当
我正在查看 C# 中的这两个类:XmlTextWriter 和 XmlWriter。谁能解释一下区别并告诉我在哪里使用哪个? 最佳答案 XmlWriter 是一个抽象类。 XmlTextWriter是
我在我的项目中使用 XmlTextWriter 类。我不知道,如何在 Xml 中使用 CDATA。谁能帮帮我? objX.WriteElementString("category", c.Deepes
我认为我错过了一些微不足道的东西,但我在这方面浪费了很多时间,所以它的解决方案可能对其他人也有用: 我正在 Linux 下使用 libxml2 2.9.8(纯 C,而不是 C++ 绑定(bind))。
Microsoft 推荐使用 XmlWriter 而不是 XmlTextWriter https://msdn.microsoft.com/en-us/library/system.xml.xmlte
using (Stream responseStream = new MemoryStream()) { try
我是一名优秀的程序员,十分优秀!