C# 通过HTTP Post将XML发送到IP:端口
好的,首先,我没有使用任何类型的web服务。现在,除了接收XML之外,我对接收XML的应用程序了解不多。我知道你帮了大忙。我没有编写接收应用程序,但我的公司没有任何有用的方法来测试XML传输阶段 我基本上想发送这样的XML文档C# 通过HTTP Post将XML发送到IP:端口,c#,xml,http,post,C#,Xml,Http,Post,好的,首先,我没有使用任何类型的web服务。现在,除了接收XML之外,我对接收XML的应用程序了解不多。我知道你帮了大忙。我没有编写接收应用程序,但我的公司没有任何有用的方法来测试XML传输阶段 我基本上想发送这样的XML文档 <H2HXmlRequest class="myClass"> <Call> <CallerID></CallerID> <Duration>0</Duration> </Cal
<H2HXmlRequest class="myClass">
<Call>
<CallerID></CallerID>
<Duration>0</Duration>
</Call>
<Terminal>
<CancelDate></CancelDate>
<ClerkLoginTime></ClerkLoginTime>
</Terminal>
<Transaction>
<AcceptedCurrency></AcceptedCurrency>
<AccountId>6208700003</AccountId>
</Transaction>
</H2HXmlRequest>
0
6208700003
…对于我并不十分了解的应用程序。这没什么特别的,只要有适当的帮助,我可能会找到更多的信息。但是我想做的是开发一种C#Forms应用程序,它可以接受上面的请求,通过IP和端口发送请求,并希望看到一些事情发生。制作简单web请求的推荐方法是使用WebClient对象 下面是一段代码片段:
// assume your XML string is returned from GetXmlString()
string xml = GetXmlString();
// assume port 8080
string url = new UriBuilder("http","www.example.com",8080).ToString();
// create a client object
using(System.Net.WebClient client = new System.Net.WebClient()) {
// performs an HTTP POST
client.UploadString(url, xml);
}
如果您有IP和端口,为什么不尝试通过TCP/IP传输XML。在C#中,您可以通过使用System.Net.Sockets类TCPClient来实现这一点。这个类有Connect、send和receive方法,以便与IP和端口连接,然后发送消息并等待接收消息。这里混合了很多概念。标题是http POST,但问题提到表单应用程序并通过TCP端口发送。那是哪一个呢?web应用程序还是WinForms应用程序?XML只是有人会粘贴到其中的东西吗?不,它是可以执行HTTP Post的WinForms应用程序。它应该是System.Net而不是System.Web吗?不要忘记从XML声明中删除
编码属性(例如
),或者使encoding属性与WebClient.encoding
属性的编码匹配(例如
)注意:我不知道WebClient
的默认编码是什么,但您最好希望它是某种形式的Unicode。为什么不呢?你不应该重新发明轮子。已经有一个经过测试、安全检查和维护的代码库,可以将数据发送到http服务器。尽管自己编写套接字代码很有趣,但很容易出现bug或安全漏洞。