### http xml 调用综合管理系统提供的服务 webservice

- 通过http+xml可以调用后台提供的webservice服务，采用这种方式，可以在excel、java、或者其他任何程序中访问综合管理系统提供的服务，用来获取需要的数据或者调用相应的服务。
- 这种方式通过xml文件传入参数给后台服务，后台服务处理后返回一个xml文件。
- 采用的xml文件需要遵循特定的格式来组织。调用方按照规定格式编写好xml文件，通过httpxml调用传给后台服务，后台服务从该xml文件中提取出相关参数进行处理，处理完毕后再把结果信息组织成一个xml文件返回给调用方，完成一个调用过程。
- 调用入口 http_xmp_call?func_id=后台服务名&call_key=应用通行码，后台服务名必须是综合管理系统提供的有效名称，应用通行码（call_key）由系统管理员分配，用于确保调用请求来自合法的应用。
- 应用通行码在webservice示例窗口中定义。每次调用必须传入一个预先定义的应用通行码，否则服务器不会进行响应。通行码建议长度>12位。
- 每次完成调用后，如果服务器在执行过程中发生错误，则会返回一个非0的变量，标志为 _r_ec_ ，未返回该变量或者该变量为0表示成功完成，当 _r_ec_ 不为0时，_r_em_ 里面记录了错误的信息。
- 每次完成调用后，_r_ 变量是一个后台返回值，取决于具体的服务，大部分情况下不使用。
- excel里进行调用的例子: (假定服务模块在本机127.0.0.1)
Sub webservice_test()
Dim objHttp, xmlDoc, sText, sXml
Set objHttp = CreateObject("MSXML2.XMLHTTP")
Set xmlDoc = CreateObject("MSXML.DOMDocument")
strWebserviceURL = "http://127.0.0.1/http_xml_call?func_id=sf_upper&call_key=11"
strRequest = "<?xml version='1.0' encoding='GB2312'?> <para_mgr type='para'> <str type='string'>ki112ftereDE</str> </para_mgr>"
objHttp.Open "POST", strWebserviceURL, False
objHttp.SetRequestHeader "Content-Type", "text/xml"
objHttp.Send (strRequest)
If objHttp.Status = 200 Then
xmlDoc.Load (objHttp.responseXML)
sText = xmlDoc.XML
Else
sText = "调用WebService出错，请检查"
End If
Range("A1").Value = sText
End Sub