我一直在将一堆文件从Coldfusion转换为C#,到目前为止,所有这些文件一直在流动。我正在学习ColdFusion,我几乎没有用C#写作,所以我被困在这里。任何人都可以帮忙解释我将如何将这段代码翻译成C#?
<cfobject type="COM" action="Create" name="objServerXMLHttp" class="msxml2.ServerXMLHTTP.3.0">
<cfset objServerXMLHttp.open("POST", "http://URL", True , "Me.User", "Me.Password")>
<cfset objServerXMLHttp.setRequestHeader("Content-Type", "text/xml")>
<cfset objServerXMLHttp.setRequestHeader("charset", "utf-8")>
<cfset objServerXMLHttp.send("#XMLRequest#")>
<cfset thread = CreateObject("java", "java.lang.Thread")>
对于某些背景,我基本上只是从数据库中获取信息,用字符串中的XML标记围绕它,从字符串中创建XML文件,现在我就在这里。
答案 0 :(得分:2)
使用动态关键字在C#4.0(VS2010)中直接翻译很容易:
dynamic objServerXMLHttp = Activator.CreateInstance(Type.GetTypeFromProgID("msxml2.ServerXMLHTTP.3.0"));
objServerXMLHttp.open("POST", "http://chrdevweb:8080/mellibase/webservice/rest", true, "Me.User", "Me.Password");
objServerXMLHttp.setRequestHeader("Content-Type", "text/xml");
objServerXMLHttp.setRequestHeader("charset", "utf-8");
objServerXMLHttp.send("#XMLRequest#");
答案 1 :(得分:1)
所以只是为了分解这个冷却代码在做什么(你可能知道的):
所以在使用c#的asp.net中,邮政编码是这样的:
HttpWebRequest request=null;
Uri uri = new Uri(url);
request = (HttpWebRequest) WebRequest.Create(uri);
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = postData.Length;
using(Stream writeStream = request.GetRequestStream())
{
UTF8Encoding encoding = new UTF8Encoding();
byte[] bytes = encoding.GetBytes(postData);
writeStream.Write(bytes, 0, bytes.Length);
}
string result=string.Empty;
using (HttpWebResponse response = (HttpWebResponse) request.GetResponse())
{
using (Stream responseStream = response.GetResponseStream())
{
using (StreamReader readStream = new StreamReader (responseStream, Encoding.UTF8))
{
result = readStream.ReadToEnd();
}
}
}
最后的结果变量会保留您的回复。 'url'是您要发布的网址,'postData'是您的xml字符串。
要构建XML文档,您可以在c#中使用XMLdocument,或者只需将字符串放在一起。
PS:这是未经测试的,因此某处可能存在语法错误:)