Web service一般就是用SOAP协议通过HTTP来调用它,其实他就是一个WSDL文档,客户都可以阅读WSDL文档来用这个Web service。客户根据WSDL描述文档,会生成一个SOAP请求消息。Web service都是放在Web服务器 (如IIS) 后面的,客户生成的SOAP请求会被嵌入在一个HTTP POST请求中,发送到Web服务器来。Web服务器再把这些请求转发给Web service请求处理器。请求处理器的作用在于,解析收到的SOAP请求,调用Web service,然后再生成相应的SOAP应答。Web服务器得到SOAP应答后,会再通过HTTP应答的方式把它送回到客户端。
个人以为就把webservice当成是Http这种请求和响应方式就可以处理大部分问题了。
SOAP 使用 HTTP 传送 XML,尽管HTTP 不是有效率的通讯协议,而且 XML 还需要额外的文件解析(parse),两者使得交易的速度大大低于其它方案。但是XML 是一个开放、健全、有语义的讯息机制,而 HTTP 是一个广泛又能避免许多关于防火墙的问题,从而使SOAP得到了广泛的应用。但是如果效率对你来说很重要,那么你应该多考虑其它的方式,而不要用 SOAP。
为了更好的理解SOAP,HTTP,XML如何工作的,不妨先考虑一下COM/DCOM的运行机制,DCOM处理网络协议的低层次的细节问题,如PROXY/STUB间的通讯,生命周期的管理,对象的标识。在客户端与服务器端进行交互的时候,DCOM采用NDR(Network Data Representation)作为数据表示,它是低层次的与平台无关的数据表现形式。
一个测试客户端程序
在我们开始讨论代码之前,让我们首先了解一下使用WebServices传输数据对我们有哪些好处。在下面这个窗体中,我创建了一个简单的测试用客户端程序,该程序将两个不同的WebServices结合到了一个MicrosofteMbeddedVisualBasic应用程序之中。:
SOAP客户端测试程序示例
窗体顶部的TextBox(文本框)用来选择所需的WebService(描述)。这个URI(UniversalResourceIdentifier)是使用SOAPToolkitWizard创建的SDL(服务描述语言,ServicesDescriptionLanguage)文件。
我已经创建了第一个WebService,您可以调用这个WebService(使用顶部的“Get”按钮),这个WebService主要用于测试目的。它调用一个简单的WebService,将您提交的名和姓作为参数连接到了一个包含完整名称的字符串中。
当您输入一个已经在服务器上进行了定义的DSN(数据源名称)以及一个针对该DSN的SQL(结构化查询语言)查询,然后点击“Get”按钮时,它开始变得更有意思了。DSN和SQL作为一个参数传递给了WebService,然后以XML格式返回一个ADORecordset。数据经过分析后,填充在窗体底部的ListView控件中。
在正确对服务器进行了设置的前提下,现在,您可以方便地访问您的企业数据了。您无需任何第三方产品--甚至不使用ADOCE--即可轻松做到这一点。对此,我的一位同事说,“这实在令人惊讶!”
代码讨论
以下代码为cmdGetRecordset_Click事件的代码(当您按下窗体底部的“Get”按钮时运行):
DimlavParameters(2)AsVariant
DimlsAsString
DimlitmAsListItem
DimiAsInteger
'Setparameters
lavParameters(1)=txtDSNText
lavParameters(2)=txtSQLText
'MakeSOAPCall
ls=SOAPCall(txtURIText,"GetRecordset",lavParameters,chkShowPACkets=1)
'ClearandaddListViewheadings
lvwRecordsetColumnHeadersClear
lvwRecordsetColumnHeadersAdd1,,"ArtNo",700
lvwRecordsetColumnHeadersAdd2,,"Description",1450
lvwRecordsetColumnHeadersAdd3,,"Price",850,lvwColumnRight
'ClearandfillListViewfromXML(withRecordsetEmulation)
lvwRecordsetListItEMSClear
XMLRSOpenls
DoWhileNotXMLRSEOF
Setlitm=lvwRecordsetListItemsAdd(,,XMLRS("ArticleNo"))
常用分诊技巧soap公式代表( )
PQRST公式是五个英文单词第一个字母组成的缩写,适用于疼痛的病人。
1、P(Provoke,诱因):疼痛发生的诱因及加重与缓解的因素。
2、Q(quality,性质):疼痛的性质,如绞痛、钝痛、电击样、刀割样、针刺样、烧灼样等。
3、R(radiate,放射):有否放射痛,向哪些部位放射。
4、S(severity,程度):疼痛的程度如何,若把无痛到不能忍受的疼痛用1~10的数字来比喻,相当于哪个数的程度。
5、T(time,时间):疼痛开始、持续、终止的时间。
PQRST记忆公式:一般用于有疼痛的病人。PQRST5个字母相连,刚好是心电图的五个波形字母顺序,因而极易记忆和应用。
扩展资料:
急诊科工作流程:接诊——分诊——处理。其中分诊是根据病人主诉及主要症状和体征,分清疾病的轻、重、缓、急及所属专科,进行初步诊断,安排救治程序及分配专科就诊的技术。
1、资料收集:问,看,听,闻,触,查;
2、分诊技巧:SOAP公式,PQRST公式(疼痛) ,CRAMS评分(生理+解剖);
3、病情分类:Ⅰ类—危急症,Ⅱ类—急重症,Ⅲ类—亚紧急,Ⅳ类—非紧急。
SOAP公式:即主诉、观察、估计、计划。
1、主诉(Subjective):收集病人或陪人的所有资料。
2、观察(Objective):运用上述观察手段对病人进行病情观察,获得初步印象。
3、估计(Assess):综合上述情况对病情进行分析。
4、计划(Plan):组织抢救程序,进行专科会诊。
SOAP:简单对象访问协议,简单对象访问协议(SOAP)是一种轻量的、简单的、基于 XML 的协议,它被设计成在 WEB 上交换结构化的和固化的信息。 SOAP 可以和现存的许多因特网协议和格式结合使用,包括超文本传输协议( HTTP),简单邮件传输协议(SMTP),多用途网际邮件扩充协议(MIME)。它还支持从消息系统到远程过程调用(RPC)等大量的应用程序。
OAP消息的编码一般默认为UTF-8,一般情况下是能满足我们的开发的,但是在具体的的项目开发里,可能需要调整为特殊的编码,如Shift_JIS、 GB2312、UTF-16等。鉴于网上关于这方面的资料很少,通过几个小时的搜索和测试,终于找到了更改编码的方式。本文主要以Axis和Axis2做 为SOAP引擎为例,总结其更改方法。
1 Axis
Stubjava文件的调用方法里增加蓝色语句(_callsetProperty(orgapacheaxisclientCallCHARACTER_SET_ENCODING, "Shift_JIS"); )
orgapacheaxisclientCall _call = createCall();
_callsetOperation(_operations[0]);
_callsetUseSOAPAction(true);
_callsetEncodingStyle(null);
_callsetProperty(orgapacheaxisclientCallSEND_TYPE_ATTR, BooleanFALSE);
_callsetProperty(orgapacheaxisAxisEnginePROP_DOMULTIREFS, BooleanFALSE);
_callsetSOAPVersion(orgapacheaxissoapSOAPConstantsSOAP11_CONSTANTS);
_callsetOperationName(new javaxxmlnamespaceQName("http://tempuriorg/wkn15h0", "KN15H0"));
_callsetProperty(orgapacheaxisclientCallCHARACTER_SET_ENCODING, "Shift_JIS");
其中 orgapacheaxisclientCallCHARACTER_SET_ENCODING = javaxxmlsoapcharacter-set-encoding
其他SOAP引擎也是通过类似setProperty( "javaxxmlsoapcharacter-set-encoding", "Shift_JIS" )的方式进行更改编码的。
2 Aixs2
在 Stubjava文件的调用方法里,应该有两种方法修改。
方法一:通过MessageContextsetProperty(orgapacheaxis2ConstantsConfigurationCHARACTER_SET_ENCODING,"UTF-16");
方法二:_operationClientgetOptions()setProperty(orgapacheaxis2ConstantsConfigurationCHARACTER_SET_ENCODING,"Shift_JIS");
(注意: 通过以上两种方式,测试发现都不能成功,似乎始终是按照UTF-8编码处理,参照:http://wwwnabblecom/-Axis2--Character-Set-Encoding-problem-td18645088html)
欢迎分享,转载请注明来源:浪漫分享网
评论列表(0条)