webservice实例(webservice java 实例)
如何调用别人提供的webservice接口
在项目中选择【控制台应用程序】,点击项目右键,选择添加-服务引用。在地址栏中输入WebServie链接地址后回车,点击确定后在代码中就可以看到添加的服务应用了,详细步骤:
1、首先打开VS2013,选择文件-新建-项目。
2、在项目中选择【控制台应用程序】,将项目名称重新命名为【WebServiceTest】。
3、点击项目右键,选择添加-服务引用。
4、在地址栏中输入WebServie链接地址后回车,然后重新命名服务名称为【ServiceGetWeather】,点击确定后在代码中就可以看到添加的服务应用了。
5、然后在代码中添加如下代码,调用webservice,获取接口返回的数据,呈现出来。
6、这是运行的结果,可以看出接口返回了一个xml格式的数据。
如何使用C#创建WebService
C#学习到一定程度会涉及到C#创建WebService的一些高阶知识,本文试图对此做一个简单的介绍。
假设A是客户端,B是webservice服务端,用户通过http协议向服务器发送soap请求,webservice返回客户端Xml格式的数据。
现在我们看一看创建一个C#创建WebService的大致过程:
服务端的webservice是必须要建的。中间的soap,Xml我们不用去关心,在客户端这边,比较重要的是如何从webservice取得对象?答案是用的是proxy对象。客户端由代理对象(proxy)负责与webservice的通信。所以在客户端使用webservice,完全和使用一个本地对象是一样的。
我们现在以一个简单的C#创建WebService实例来说明。
打开vs.Net,新建工程(asp.Net ?web服务),在位置中键入http。//localhost/webserver,其中webserver就是工程的名字。确定后,出现一个Service1.asmx.cx,双击,出现代码窗口,
using ?System; ? using ?System.Collections; ? using ?System.ComponentModel; ? using ?System.Data; ? using ?System.Diagnostics; ? using ?System.Web; ? using ?System.Web.Services; ? namespace ?webserver ? { ? /// ? ? /// ?Service1 ?的摘要说明。 ? /// ? ? (1) ? public ?class ?Service1 ?: ? ?System.Web.Services.WebService ? { ? public ?Service1() ? { ? //CODEGEN:该调用是 ?ASP.Net ?Web ? ?服务设计器所必需的 ? InitializeComponent(); ? } ? #region ?Component ?Designer ?generated ?code ? //Web ?服务设计器所必需的 ? private ?IContainer ?components ?= ?null; ? /// ? ? /// ?设计器支持所需的方法 ?- ? ?不要使用代码编辑器修改 ? /// ?此方法的内容。 ? /// ? ? private ?void ?InitializeComponent() ? { ? } ? /// ? ? /// ?清理所有正在使用的资源。 ? /// ? ? protected ?override ?void ?Dispose ?( ?bool ?disposing ?) ? { ? if(disposing ? ?components ?!= ?null) ? { ? components.Dispose(); ? } ? base.Dispose(disposing); ? } ? #endregion ? // ?WEB ?服务示例 ? // ?HelloWorld() ?示例服务返回字符串 ?Hello ?World ? // ?若要生成,请取消注释下列行,然后保存并生成项目 ? // ?若要测试此 ?Web ?服务,请按 ?F5 ?键 ? // [WebMethod] ? // public ?string ?HelloWorld() ? // { ? // return ?"Hello ?World"; ? // } ? } ? } ? 下面在(1)处加入
[WebService(Namespace="http。//localhost/webserver/")]
这是因为soap是基于http协议上的,客户端无法知道webservice位于那个服务器上。在实际应用中,比如http。//www。ourfly。com上放置这个webservice,则Namespace改为http。//www。ourfly。com/webserver.
下面我们给这个webservice添加一个方法。
// [WebMethod] ? // public ?string ?HelloWorld() ? // { ? // return ?"Hello ?World"; ? // } ? 微软帮我们写好了一个,接着添加一个方法。 ?方法名称叫show. ? [WebMethod] ? public ?string ?show(string ?yourname) ? { ? return ?“http。//www。ourfly。com”+”欢迎”+yourname; ? } ? 现在,就可以运行了,按F5,点击show,输入你的名字, ?然后点击invote 看到了吧。 ? 〈 ?Xml ?version="1.0" ?encoding="utf-8" ??〉 ? ? 〈 string ?Xmlns="http。//tempuri。org/"〉 ?http。//www。ourfly。com欢迎yyg〈 /string〉 ?成功了。打开bin目录,Vs.Net已经将proxy做好了.webserver.dll.
现在我们在不同的环境下测试:
1.打开vs.Net,新建”windows应用程序”工程,命名为Client,增加按钮,文本框。
现在要用到代理了,右键单击右边的reference(引用),选择”添加引用”,选择浏览,找到webserver目录下的bin目录下的webserver.dll
再加入一个system.web.webservices的引用,在列表中有。
在form1.cs里,加入
using System.Web.Services;
using webserver;
然后在
private ?System.Windows.Forms.Button ?button1;
private ?System.Windows.Forms.TextBox ?textBox1;
后面,插入
private ?webserver.service1 ?Client
建立一个service1的实例。双击按钮,代码如下:
private ?void ?button1_Click ?(object ?sender, ?System.EventArgs ?e) ? { ? Client ?=new ?Service1(); ? string ?name; ? name=Client.show("龙卷风.Net"); ? textBox1.Text=name; ? } ? 按F5,运行工程,点击按钮,文本框中显示 http。//www。ourfly。com欢迎龙卷风.Net
2. Asp.Net ?web窗口的测试
方法与上面的一模一样,添加引用,建立service1的实例 在此不在细说。
3.在VB中测试
这个就要相对来说复杂一些 ,首先在VB中建立一个”标准EXE”的工程。添加引用:Microsoft ?Soap ?Type ?library。
注意:如果没有安装Microsoft ?Soap ?Toolkit,是没有这个类型库的。
如何调用webservice
一、WebService在cs后台程序中的调用
A、通过命名空间和类名直接调用
示例:
WebService ws = new WebService();
string s = ws.HelloWorld();
B、通过添加WEB引用的方式调用,首先添加WEB引用,通过URL指向WEBSERVICE,
指定WEB引用名,假设为KK;
示例:
kk.WebService n = new kk.WebService();
string ss=n.HelloWorld();
二、WebService在前台页面的JS 调用方法
1、首先通过下面的方法把Webservice在前台引用进来
asp:ScriptManager runat="server"
Services
asp:ServiceReference Path="WebService.asmx" InlineScript="True" /
/Services
/asp:ScriptManager
2、然后就可以通过JS程序进行调用,示例如下:
script type="text/jscript"
function a()
{
WebService.HelloWorld(onresult);
}
//这里的onresult是回调函数
function onresult(result)
{
alert(result);
}
function b()
{
WebService.add(1,2,onreturn)
}
function onreturn(result)
{
alert(result);
}
//下面的'context'是上下文,可以通过回到函数通过重载的方式获得;
function c()
{
WebService.div(1,1,onresultC,onerror,'context');
}
function onresultC(res,c)
{
alert(res);
alert(c);
}
//onerror是获得异常信息的回调函数,下面给出了获得异常信息的方法
function onerror(error)
{
var a="";
a=String.format("获取服务器端异常的具体类型:{0}\t\n获取详细的异常描述信息:{1}\t\n获取造成异常的:{2}\t\n获取服务器端异常的堆栈
跟踪信息:{3}\t\n获取一个布尔值,表示异常是否是由于网络连接超时造成的{4}",
error.get_exceptionType(),
error.get_message(),
error.get_statusCode(),
error.get_stackTrace(),
error.get_timedOut())
alert(a);
}
a();
b();
c();
/script
webservice详细教程
我找到一下一些资料,都是入门级的教程:
WebServices入门:
Xml WebService完全实例解析(一):
Xml WebService完全实例解析(二):
WebService初探:
这里还有非常多的相关资料:

C#使用PHP服务端的Web Service通信实例
这篇文章主要介绍了C#使用PHP服务端的Web
Service通信实例,需要的朋友可以参考下
注:本例中构建Web
Service采用SOAP方式,通过php插件NuSoap来搭建SOAP服务器。
代码如下:
?
require_once("lib/nusoap.php");
//调用NuSoap
$server
=
new
soap_server();
//创建soap服务端
$server-configureWSDL("login_service");
//配置WSDL
$namespace
=
"";
$server-wsdl-schemaTargetNamespace
=
$namespace;
//设置wsdl命名空间为
$server-register(
//
注册Web服务
'login_verifiy',
//定义名称
array('name'='xsd:string','pw'='xsd:string'),
//接受参数
array('return'='xsd:string'),
//返回
$namespace,
//命名空间
false,
//
soapaction:默认
'rpc',
//
类型:
rpc
or
document
'encoded',
//
参数:encoded(编码)或
literal(文字)
'A
web
method
of
login'
//描述
);
$POST_DATA
=
isset($GLOBALS['HTTP_RAW_POST_DATA'])?
$GLOBALS['HTTP_RAW_POST_DATA']
:
'';
$server-service($POST_DATA);
//将提交的数据传递给soap服务
function
login_verifiy($user,$pw)
{
//服务执行内容,本示例中为显示输入的帐号密码
return
'user:'.$user.'
password:'.$pw);
}
?
C#客户端调用:
代码如下:
[DllImport("kernel32")]
//调用api函数读ini文件。返回值为字符串缓冲区的长度
private
static
extern
long
GetPrivateProfileString(string
section,
string
key,
string
def,
StringBuilder
retVal,
int
size,
string
filePath);
private
void
Form1_Load(object
sender,
EventArgs
e)
{
StringBuilder
temp
=
new
StringBuilder(256);
GetPrivateProfileString("system",
"url",
null,
temp,
256,
System.IO.Directory.GetCurrentDirectory()+"config.ini");
//通过读取config.ini配置文件(结构见附加内容)来获取webservice
url
Program.server_url
=
temp.ToString();
//Program.cs中的全局变量server_url用以储存webservice
url
}
private
void
button1_Click(object
sender,
EventArgs
e)
{
WebReference.login_service
l
=
new
WebReference.login_service();
string
s=l.login_verifiy(username.Text,
password.Text);
MessageBox.Show(s);
}
附config.ini内容:
代码如下:
[system]
url=