发送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>因 ...
随机推荐
- 用window.showModalDialog()打开的页面Request.UrlReferrer为null
今天在解决一个问题,怎么也找不到解决方案.我的一个窗体是IE通过window.showModalDialog()打开的,但为了防止用户手工输的地址,所以我需要判断是通过别的页面调整获得,用Reques ...
- css 之引入自定义字体/特殊字体-----使用ttf格式语言包
1.准备好需要的 .ttf 格式的语言包,在css导入: @font-face { font-family: myFont; src: url('../assets/font/Oswald-SemiB ...
- vmware 虚拟配置固定IP就无法联网 centos
centos7虚拟机初始运行时ip是动态随机分配的 通过修改etc/sysconfig/network-scripts/ifcfg-ens33文件的配置可以设置固定的ipTYPE=EthernetPR ...
- prometheus部署
1.prometheus安装 软件下载: wget https://dl.grafana.com/oss/release/grafana-6.4.2-1.x86_64.rpm https://gith ...
- 洛谷P1020 导弹拦截【单调栈】
题目:https://www.luogu.org/problemnew/show/P1020 题意: 给定一些导弹的高度. 一个导弹系统只能拦截高度不增的一系列导弹,问如果只有一个系统最多能拦截多少导 ...
- MFC、API、C++三者的区别
MFC(Microsoft Foundation Class)是微软的基础类库,只能用于Windows系统. API(Application Programming Interface)是应用程序编程 ...
- JSP大文件分片上传
核心原理: 该项目核心就是文件分块上传.前后端要高度配合,需要双方约定好一些数据,才能完成大文件分块,我们在项目中要重点解决的以下问题. * 如何分片: * 如何合成一个文件: * 中断了从哪个分片开 ...
- Codevs 1574 广义斐波那契数列(矩阵乘法)
1574 广义斐波那契数列 时间限制: 1 s 空间限制: 256000 KB 题目等级 : 钻石 Diamond 题目描述 Description 广义的斐波那契数列是指形如an=p*an-1+q* ...
- ie8中如何使用base64
由于ie8中不能使用jQuery2.0以上版本所以无法使用 window.btoa()加密 window.atob()解密 所以只能使用最原生的base64加密方法如下: /** * Created ...
- 修改checkbox样式-1
说明 使用伪类来对复选框进行样式修改.以下以最简单的一个样式修改为实例进行说明. 步骤介绍: 将一个label与复选框进行绑定,将两者放在同一个div下 调整 label的外部样式使其作为复选框的外形 ...