加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

webservice+xmlhttp+remoting

发布时间:2020-12-17 00:22:05 所属栏目:安全 来源:网络整理
导读:WEBSERVICE 简单的说,它是一个供应商提供的服务,该供应商提供的服务器端提供了一些方法,这些方法可以在internet上被其化客户在任何操作平台上直接调用,而且不需要考虑 这些方法是用哪种语言编写的。 XML 是一种结构化的文本,也就是说,可以将数据表示为

WEBSERVICE
简单的说,它是一个供应商提供的服务,该供应商提供的服务器端提供了一些方法,这些方法可以在internet上被其化客户在任何操作平台上直接调用,而且不需要考虑
这些方法是用哪种语言编写的。

XML
是一种结构化的文本,也就是说,可以将数据表示为具有层次结构的结构化文本形式。由于任何平台都支持文本,所以把数据转换为文本就可以达到跨平台传递数据的功能,
实现不同平台之间的数据共享。

xml常用类
xmlreader,xmlwriter,xmltextwriter,xmldocument,xmldatadocument,xmlnode,xmlnodelist,xmlelement,xmlattribute.

SOAP
简单对像访问协议,用来与web service交换数据,是一个开放的基于XML的internet标准。简单地说,它是传送HTTP请求和应答数据的一种标准。

.net remoting

using System;
namespace RemoteObject
{
??? public class MyObject : MarshalByRefObject
??? {
??????? public int Add(int a,int b)
??????? {
??????????? return a + b;
??????? }
??? }
}

using System;
using System.Runtime.Remoting;
using System.Runtime.Remoting.Channels;
using System.Runtime.Remoting.Channels.Tcp;
namespace TestRemotingConsoleServer
{
??? class Program
??? {
??????? static void Main(string[] args)
??????? {
??????????? // 新建一个TCP信道
??????????? TcpChannel tc = new TcpChannel(9999);
??????????? // 注册TCP信道
??????????? ChannelServices.RegisterChannel(tc,false);
??????????? // 注册知名对象
??????????? RemotingConfiguration.RegisterWellKnownServiceType(typeof(RemoteObject.
??????????? MyObject),"myObject",WellKnownObjectMode.SingleCall);
??????????? // 让控制台不会自动关闭
??????????? Console.ReadLine();
??????? }
??? }
}

protected void Page_Load(object sender,EventArgs e)
{
??? RemoteObject.MyObject mo = (RemoteObject.MyObject)Activator.GetObject
??? (typeof(RemoteObject.MyObject),"tcp://localhost:9999/myObject");
??? Response.Write(mo.Add(1,2));
}


wsdl
web服务描述语言,用于描述web service提供的方法以及调用这些方法的各种方式。它是另一种与XML完全兼容的语法。


web service文件的扩展名为asmx,其后端代码扩展名为.asmx.cs。在后端代码中,可以定义public形式的方法,而且定义的方法前还要用webMethod特性表明。
如果没有webmethod特性描述,web service中定义的方法就不能对外提供服务。
[WebMethod]
public string UpString(string getString)
{

??? string backString=getString.ToUpper();
??? return backString;
}
这里WebMethod是对UpString()方示的声明。


对于每个web service来说都需要一个惟一的命名空间,以便于客户端应用程序能够将它和web上有其它服务区分开。而asp.net创建的工程默认的命名空间都是相同的,
使用WebServiceAttribute类中的Namespace特性可以更改系统默认的命名空间。如:
[WebService(Namespace=http://www.myweb.com/webservice/)]
public class myWebservice
{
................
}
表明客户端应用程序调用是的http://www.myweb.com/webservice/上的服务。
它的位置在public class myWebservice声明的上一行,表示该Web Service使用的名称空间。


//----------------------------------

新建一个项目,在“模板”中选择ASP.NET Web服务,命名为MyWebService
如果需要,输入一个能用开发Web Service的Web服务器地址,单击确定。


...........
namespace MyWebService
{

[WebServie(Namespace="http://localhost/webservices")]
public class Service:System.Web.Servies.WebService
{
..............
?? [WebMethod]
?? public string HelloWorld()
?? {
?????? return "hello world";
?? }

?? [WebMethod]
?? public string ConvertString(string str,bool toLower)
?? {
????? if(toLower)
????? {
???????? str=str.ToLower();
????? }
????? else
????? {
???????? str=str.ToUpper();
????? }
????? return str;
?? }
}
}


web service的调用方法
选择“解决方案资源管理器”,右击引用,选择添加web引用,输入URL"http://localhost(或网址)/Mywebservie/service1.asmx"


localhost.service1 cc=new Testwebservie.localhost.service1();


this.texttab.tex=cc.ConvertString(this.textboxinput.text,false)

?

/////////////////////////////////// ===================================================== ?var? xmlhttp? =? new? ActiveXObject("Microsoft.XMLHTTP");? ?????? xmlhttp.open("GET","xml_yz.aspx?act=UserManager_insert&czydm="+UserForm.czyDm.value,false);? //相对路径 ?????? xmlhttp.send();? ?????? retInfo=xmlhttp.responseText; ?????? //alert(retInfo); ?????? if(retInfo=="pass") ?????? { ?????? } ?????? else ?????? { ??????????? alert("操作员代码 "+retInfo+" 已存在!"); ??????????? return false; ?????? } ?? ?? } ?? return true;

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读