永发信息网

创建http 请求返回XML内容

答案:4  悬赏:20  手机版
解决时间 2021-05-05 03:42
  • 提问者网友:我一贱你就笑
  • 2021-05-04 16:37

别人写的那些接口访问的是HTTP请求,结果页面返回上就是一个XML文件格式的内容
其它什么都没有 他们是怎么做的 谁有例子

最佳答案
  • 五星知识达人网友:动情书生
  • 2021-05-04 17:03

都没其他人回答啊!!!


我给你举个例子:


若通过xmlhttp请求http://xxx/xxx.jsp返回xml结果格式为
<?xml version="1.0" encoding="GBK" ?>
<info>
<user>xxx </user>
<result>1 </result>
</info>


则获取节点值代码如下:


using MSXML2; //引用com组件
protected void Page_Load(object sender, EventArgs e)
{
MSXML2.XMLHTTPClass xmlHttp = new XMLHTTPClass();
MSXML2.DOMDocument xmlDom= new DOMDocument();
try
{
xmlHttp .open("Post", "http://xxx/xxx.jsp", false, "", "");
xmlHttp .setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlHttp .send("");
}
finally
{
if (xmlHttp .status / 100 == 2) //请求状态成功
{
xmlDom.loadXML(xmlHttp.responseText);
}
}
Response.Write(xmlDom.selectSingleNode("/info/user").text+ "<br>");
Response.Write(xmlDom.selectSingleNode("/info/result").text + "<br>");
}

全部回答
  • 1楼网友:未来江山和你
  • 2021-05-04 19:07
这个案例你还有吗?我现在也需要。
  • 2楼网友:风格不统一
  • 2021-05-04 17:52

这里你把ASP页面或ASPX页面里面的html内容全都删掉,只要程序代码

然后使用Response把这些XML写回去就行了,给你个例子

constructer con = new constructer(requestmsg); // 这个构造我自己的一个对象,对你没用 byte[] bty = con.response(); // 这里你可以了解一下,函数体在下面 Response.BinaryWrite(bty);

public byte[] response()

{

MemoryStream memoryStream = new MemoryStream();

BinaryWriter writer = new BinaryWriter(memoryStream);

byte[] msgBodybytes = Encoding.Unicode.GetBytes("<resp><msgid>" + cb.Msgid + "</msgid><cname>"+cname+"</cname><cext>"+cext+"</cext><des>"+des+"</des><cmsisdn>"+cmsisdn+"</cmsisdn><filesize>"+filesize.ToString()+"</filesize><url>"+url+"</url></resp>");

writer.Write(msgBodybytes);

return (memoryStream.GetBuffer()); // 关键代码就这些

}

  • 3楼网友:由着我着迷
  • 2021-05-04 17:24
浏览器的解析方式是由Content-Type头决定的,想让浏览器怎么处理你就返回的值就可以了。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯