如果调用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的更多相关文章

  1. Java 发送SOAP请求调用WebService,解析SOAP报文

    https://blog.csdn.net/Peng_Hong_fu/article/details/80113196 记录测试代码 SoapUI调用路径 http://localhost:8082/ ...

  2. Js/Ajax中发送HttpPost请求调用WebService

    1) WebService中的方法 [WebService(Namespace = "http://tempuri.org/")] [WebServiceBinding(Confo ...

  3. C# 使用 HttpPost 请求调用 WebService

    之前调用 WebService 都是直接添加服务引用,然后调用 WebService 方法的,最近发现还可以使用 Http 请求调用 WebService.这里还想说一句,还是 web api 的调用 ...

  4. Jmeter发送SOAP请求对WebService接口测试

    Jmeter发送SOAP请求对WebService接口测试 1.测试计划中添加一个用户自定义变量 2.HTTP信息头管理器,添加Content-Tpe,  application/soap+xml;c ...

  5. C# 使用 HttpPost 请求调用 WebService (转)

    转自 https://www.cnblogs.com/Brambling/p/7266482.html 之前调用 WebService 都是直接添加服务引用,然后调用 WebService 方法的,最 ...

  6. Java发布webservice应用并发送SOAP请求调用

    webservice框架有很多,比如axis.axis2.cxf.xFire等等,做服务端和做客户端都可行,个人感觉使用这些框架的好处是减少了对于接口信息的解析,最主要的是减少了对于传递于网络中XML ...

  7. ajax跨域请求调用webservice接口

    1.WebService 接口编写 步骤:新建web项目=>添加web service=>编写方法接口=>然后发布(本地测试可以直接把这个web service运行起来). 关键如何 ...

  8. java通过java.net.URL发送http请求调用接口

    一般在*.html,*.jsp页面中我们通过使用ajax调用接口,这个是我们通常用的.对于这些接口,大都是本公司写的接口供自己调用,所以直接用ajax就可以.但是,如果是多家公司共同开发一个东西,一个 ...

  9. .asmx支持post请求或者get请求调用(WebService "因 URL 意外地以 结束,请求格式无法识别" 的解决方法)

    使用Post调用以asmx形式提供的webservice时,在本机调试没有调用问题.一旦部署至服务器后会提示如下信息: <html> <head> <title>因 ...

随机推荐

  1. JavaScript教程——函数(arguments 对象)

    arguments 对象 定义 由于 JavaScript 允许函数有不定数目的参数,所以需要一种机制,可以在函数体内部读取所有参数.这就是arguments对象的由来. arguments对象包含了 ...

  2. Prim算法和Kruskal算法介绍

    一.Prim算法 普利姆(Prim)算法适用于求解无向图中的最小生成树(Minimum Cost Spanning Tree).下面是Prim算法构造最小生成树的过程图解.              ...

  3. vue-重要方法使用

    标签属性router-link-exact-active: 当页面正在方位是触发router-link-exact-active 标签router-link to= 使用a标签页面就会跳转,就不是单页 ...

  4. C# ado.net DataSet使用(五)

    一.填充dataset class Program { private static string constr = "server=.;database=northwnd;integrat ...

  5. python中导包简介

    以pycharm中为例 1.创建一个python package,就是创建一个包,注意,创建Directory和创建python package之间的不同,前者只是一个文件夹,不是包,后者是包.包里有 ...

  6. sqlserver 删除表 外键

    Truncate table Menu --truncate不能对有外键的表 delete Menu delete RoleMenu SELECT * FROM sys.foreign_keys WH ...

  7. MFC 画字体DrawText()或TextOut(),CFont字体样式类

    新建单个文档的MFC应用程序,类视图——View项的属性——消息,WM_PAINT,创建OnPaint()函数 void CMFCApplication27View::OnPaint() { CPai ...

  8. java读取 xml文件

    java读取xml文件的四种方法  转自https://www.cnblogs.com/lingyao/p/5708929.html Xml代码 1 <?xml version="1. ...

  9. centos 7配置静态IP,并配置DNS

    注意:四 个文件 cat /etc/sysconfig/network-scripts/ifcfg-eth0 cat /etc/sysconfig/network cat /etc/resolv.co ...

  10. 捣乱Linux环境下的C语言

    #include <stdlib.h> 头文件作用.CSDN C 标准库 – <stdlib.h> | 菜鸟教程  https://www.runoob.com/cprogra ...