发送Http请求调用webService
如果调用WebService的不是在.NET中,无法直接添加web引用,那怎么调用webservice。
有两种方式
第一种方式:GET方式
string strUrl = "http://127.0.0.1/rss/webservice.asmx/GetNews?topNum=2";
HttpWebRequest hwrq = (HttpWebRequest)WebRequest.Create(strUrl);
hwrq.Method = "GET";
HttpWebResponse hwrp = (HttpWebResponse)hwrq.GetResponse();
Stream stream = hwrp.GetResponseStream();
XmlDocument doc = new XmlDocument();
doc.Load(stream);
string strLine = "";
XmlNodeList list = doc.GetElementsByTagName("Table");
for (int i = ; i < list.Count; i++)
{
XmlNodeList chlist = list[i].ChildNodes;
for (int j = ; j < chlist.Count; j++)
{
strLine = strLine + chlist[j].Name + "\t" + chlist[j].InnerText + "\n";
}
strLine = strLine + "\n";
}
StreamWriter sw = new StreamWriter(@"c:/c.txt");
sw.WriteLine(strLine);
sw.Flush();
sw.Close();
第二种方式:POST方式
string strUrl = "http://127.0.0.1/rss/webservice.asmx/GetNews";
HttpWebRequest hwrq = (HttpWebRequest)WebRequest.Create(strUrl);
hwrq.Method = "POST";
hwrq.ContentType = "application/x-www-form-urlencoded";
String param1 = HttpUtility.UrlEncode("topNum");
param1 += "=" + HttpUtility.UrlEncode("");
byte[] bt = Encoding.UTF8.GetBytes(param1);
hwrq.ContentLength = bt.Length;
Stream sw = hwrq.GetRequestStream();
sw.Write(bt, , bt.Length);
sw.Close();
HttpWebResponse hwrp = (HttpWebResponse)hwrq.GetResponse();
Stream stream = hwrp.GetResponseStream();
XmlDocument xmldoc = new XmlDocument();
xmldoc.Load(stream);
XmlNodeList list = xmldoc.GetElementsByTagName("Table");
string strLine = "";
for (int i = ; i < list.Count; i++)
{
XmlNodeList chlist = list[i].ChildNodes;
for (int j = ; j < chlist.Count; j++)
{
strLine = strLine + chlist[j].Name + "\t" + chlist[j].InnerText + "\n";
}
strLine = strLine + "\n";
}
StreamWriter writer = new StreamWriter(@"c:\c.txt");
writer.WriteLine(strLine);
writer.Flush();
sw.Close();
get方式与post方式的主要区别在于post方式的参数要经过url编码,并在获得请求之前传送。
post的方式的参数一定要以实例中方式来写,否则会出现HTTP请求500错误。
string param1 = HttpUtility.UrlEncode("topNum");
param1+="="+HttpUtility.UrlEncode("5");
发送Http请求调用webService的更多相关文章
- Java 发送SOAP请求调用WebService,解析SOAP报文
https://blog.csdn.net/Peng_Hong_fu/article/details/80113196 记录测试代码 SoapUI调用路径 http://localhost:8082/ ...
- Js/Ajax中发送HttpPost请求调用WebService
1) WebService中的方法 [WebService(Namespace = "http://tempuri.org/")] [WebServiceBinding(Confo ...
- C# 使用 HttpPost 请求调用 WebService
之前调用 WebService 都是直接添加服务引用,然后调用 WebService 方法的,最近发现还可以使用 Http 请求调用 WebService.这里还想说一句,还是 web api 的调用 ...
- Jmeter发送SOAP请求对WebService接口测试
Jmeter发送SOAP请求对WebService接口测试 1.测试计划中添加一个用户自定义变量 2.HTTP信息头管理器,添加Content-Tpe, application/soap+xml;c ...
- C# 使用 HttpPost 请求调用 WebService (转)
转自 https://www.cnblogs.com/Brambling/p/7266482.html 之前调用 WebService 都是直接添加服务引用,然后调用 WebService 方法的,最 ...
- Java发布webservice应用并发送SOAP请求调用
webservice框架有很多,比如axis.axis2.cxf.xFire等等,做服务端和做客户端都可行,个人感觉使用这些框架的好处是减少了对于接口信息的解析,最主要的是减少了对于传递于网络中XML ...
- ajax跨域请求调用webservice接口
1.WebService 接口编写 步骤:新建web项目=>添加web service=>编写方法接口=>然后发布(本地测试可以直接把这个web service运行起来). 关键如何 ...
- java通过java.net.URL发送http请求调用接口
一般在*.html,*.jsp页面中我们通过使用ajax调用接口,这个是我们通常用的.对于这些接口,大都是本公司写的接口供自己调用,所以直接用ajax就可以.但是,如果是多家公司共同开发一个东西,一个 ...
- .asmx支持post请求或者get请求调用(WebService "因 URL 意外地以 结束,请求格式无法识别" 的解决方法)
使用Post调用以asmx形式提供的webservice时,在本机调试没有调用问题.一旦部署至服务器后会提示如下信息: <html> <head> <title>因 ...
随机推荐
- JavaScript教程——函数(arguments 对象)
arguments 对象 定义 由于 JavaScript 允许函数有不定数目的参数,所以需要一种机制,可以在函数体内部读取所有参数.这就是arguments对象的由来. arguments对象包含了 ...
- Prim算法和Kruskal算法介绍
一.Prim算法 普利姆(Prim)算法适用于求解无向图中的最小生成树(Minimum Cost Spanning Tree).下面是Prim算法构造最小生成树的过程图解. ...
- vue-重要方法使用
标签属性router-link-exact-active: 当页面正在方位是触发router-link-exact-active 标签router-link to= 使用a标签页面就会跳转,就不是单页 ...
- C# ado.net DataSet使用(五)
一.填充dataset class Program { private static string constr = "server=.;database=northwnd;integrat ...
- python中导包简介
以pycharm中为例 1.创建一个python package,就是创建一个包,注意,创建Directory和创建python package之间的不同,前者只是一个文件夹,不是包,后者是包.包里有 ...
- sqlserver 删除表 外键
Truncate table Menu --truncate不能对有外键的表 delete Menu delete RoleMenu SELECT * FROM sys.foreign_keys WH ...
- MFC 画字体DrawText()或TextOut(),CFont字体样式类
新建单个文档的MFC应用程序,类视图——View项的属性——消息,WM_PAINT,创建OnPaint()函数 void CMFCApplication27View::OnPaint() { CPai ...
- java读取 xml文件
java读取xml文件的四种方法 转自https://www.cnblogs.com/lingyao/p/5708929.html Xml代码 1 <?xml version="1. ...
- centos 7配置静态IP,并配置DNS
注意:四 个文件 cat /etc/sysconfig/network-scripts/ifcfg-eth0 cat /etc/sysconfig/network cat /etc/resolv.co ...
- 捣乱Linux环境下的C语言
#include <stdlib.h> 头文件作用.CSDN C 标准库 – <stdlib.h> | 菜鸟教程 https://www.runoob.com/cprogra ...