C#中怎么将XML作为参数post到接口呢?

Dhoopu 2010-11-17 11:57:59
现在要做这样的功能,我这边需要调用别人的接口来实现功能。

但是他们的接口是需要将XML数据post到他们给的接口的,

然后他们接口返回相应的XML数据,

请问如何用C#将XML数据POST过去呢?谢谢先~
...全文
2555 28 打赏 收藏 转发到动态 举报
写回复
用AI写文章
28 条回复
切换为时间正序
请发表友善的回复…
发表回复
lgw4444 2013-07-10
  • 打赏
  • 举报
回复
呵呵,不错,谢谢大吓。。。
孟子E章 2010-11-17
  • 打赏
  • 举报
回复
接口是双方约定好的,比如下面的参数名称是data

String xml = "<data>中文</data>";
String postData = "data=" + Server.UrlEncode(xml); ;
string strUrl = "http://localhost:29833/WebSite1/xx.aspx";
// 准备请求...
HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(strUrl);
myRequest.Method = "POST";
myRequest.ContentType="application/x-www-form-urlencoded";
myRequest.ContentLength = postData.Length;
Stream newStream=myRequest.GetRequestStream();
byte[] data = Encoding.GetEncoding("GB2312").GetBytes(postData);
// 发送数据
newStream.Write(data,0,data.Length);
HttpWebResponse res = myRequest.GetResponse() as HttpWebResponse;
StreamReader sr = new StreamReader(res.GetResponseStream(), Encoding.UTF8);
String ret = sr.ReadToEnd();
newStream.Close();
Response.Write("你提交的是:" + Server.HtmlEncode( ret));


接口的接收
Response.ClearContent();
Response.Write(Request.Form["data"]);
Response.End();
Dhoopu 2010-11-17
  • 打赏
  • 举报
回复
我的问题是如何提交数据到接口呢

[Quote=引用 9 楼 ly_longyue 的回复:]

直接提交string 的 xml 字符
[/Quote]
Dhoopu 2010-11-17
  • 打赏
  • 举报
回复
呜呜,还请指点下哦。。。我好像不知道怎么能把数据传给他们的接口。。。

[Quote=引用 8 楼 net_lover 的回复:]

xml就是字符串格式的,跟普通的字符串没啥区别啊
[/Quote]
龍月 2010-11-17
  • 打赏
  • 举报
回复
直接提交string 的 xml 字符
孟子E章 2010-11-17
  • 打赏
  • 举报
回复
xml就是字符串格式的,跟普通的字符串没啥区别啊
Dhoopu 2010-11-17
  • 打赏
  • 举报
回复
我是不知道怎么把XML数据POST到他们的接口上。。。

[Quote=引用 6 楼 xieyijun1986 的回复:]

自己写个封装XML操作的类,有个PUTNODE方法,以及TOXMLSTRING()方法等,还有对应根据节点名称取值方法。把你要的节点都PUTNODE进去,然后转换成XML格式,通过WEB SERVICES抛到对方的接口上,EDI数据交换大部分都这样实现的把。XML SCHEMA要保持一致哦。
[/Quote]
不訴離傷 2010-11-17
  • 打赏
  • 举报
回复
自己写个封装XML操作的类,有个PUTNODE方法,以及TOXMLSTRING()方法等,还有对应根据节点名称取值方法。把你要的节点都PUTNODE进去,然后转换成XML格式,通过WEB SERVICES抛到对方的接口上,EDI数据交换大部分都这样实现的把。XML SCHEMA要保持一致哦。
Dhoopu 2010-11-17
  • 打赏
  • 举报
回复
这跟是不是WebService没有什么关系吧。他们的接口直接是 http://www.xxx.com/a.aspx

[Quote=引用 4 楼 yellowmandog 的回复:]

还是WebService?
[/Quote]
Dhoopu 2010-11-17
  • 打赏
  • 举报
回复


[Quote=引用 1 楼 yellowmandog 的回复:]

文件路径?
文件内容编成字符串?
[/Quote]
YellowManDog 2010-11-17
  • 打赏
  • 举报
回复
还是WebService?
YellowManDog 2010-11-17
  • 打赏
  • 举报
回复
文件路径?
文件内容编成字符串?
Dhoopu 2010-11-17
  • 打赏
  • 举报
回复
各位,指导下吧
gahyyai 2010-11-17
  • 打赏
  • 举报
回复
上面这个就可以搞定了,多谢各位的帮忙~
Dhoopu 2010-11-17
  • 打赏
  • 举报
回复
上面这个就可以搞定了,多谢各位的帮忙~
Dhoopu 2010-11-17
  • 打赏
  • 举报
回复

public string Post(string url, string data)
{
string returnData = null;
try
{
byte[] buffer = Encoding.ASCII.GetBytes(data);
HttpWebRequest webReq = (HttpWebRequest)WebRequest.Create(url);
webReq.Method = "POST";
webReq.ContentType = "application/x-www-form-urlencoded";
webReq.ContentLength = buffer.Length;
Stream postData = webReq.GetRequestStream();
postData.Write(buffer, 0, buffer.Length);
postData.Close();
HttpWebResponse webResp = (HttpWebResponse)webReq.GetResponse();
Stream answer = webResp.GetResponseStream();
StreamReader answerData = new StreamReader(answer);
returnData = answerData.ReadToEnd();
}
catch (Exception ex)
{
Response.Write(ex.Message);
}
return returnData.Trim() + "\n";
}


龍月 2010-11-17
  • 打赏
  • 举报
回复
百度搜索 :c# xmlhttp
Teng_s2000 2010-11-17
  • 打赏
  • 举报
回复
加油馒头 2010-11-17
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 dupeng0811 的回复:]
这跟是不是WebService没有什么关系吧。他们的接口直接是 http://www.xxx.com/a.aspx


引用 4 楼 yellowmandog 的回复:

还是WebService?
[/Quote]

具体的 要跟他们商量下,他们要什么。。

要不然只有方法 没有 实现
加油馒头 2010-11-17
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 net_lover 的回复:]
接口是双方约定好的,比如下面的参数名称是data


C# code
String xml = "<data>中文</data>";
String postData = "data=" + Server.UrlEncode(xml); ;
string strUrl = "http://localhost:29833/WebSite1/xx.aspx";
// 准备请求.……
[/Quote]

楼主的 应该就是这个意思了

不过我建议用webservices
加载更多回复(6)

62,272

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧