我使用mvc4 asp.net web api创建了一个RestFUL api,我的一个客户需要从他的visual fox pro系统中获取一些服务。
他告诉我不能使用我的RestFUL服务,因为没有办法。我对Visual FoxPro一无所知。
有没有办法从visual fox pro中消费RestFUL服务?
答案 0 :(得分:1)
你真的在这里提出两个问题。
没有。在Web服务从一个古怪的浏览器转移到一个中心技术之前,Visual FoxPro的有意义的开发已经停止,因此这个传统的xBase系统从未进行过调整,无法与之通信。
是。 VFP可以充当COM或ODBC客户端,并且可以利用从这些方法中的任何一个中继的数据。如果您没有遇到安全墙并且具备足够的技能来手动指定HTTP标头,则标准(1)MSXML.XMLhttpRequest对象是您的最佳选择。
请注意,虽然至少有一个库可以从JSON转换为VFP可用对象,但您无法使用FoxPro原生使用JSON。如果您有选择,XML是首选,因为您可以利用Visual FoxPro的最新版本中引入的XMLAdapater类。
(1:"标准"此处含义," Windows平台上的标准。"任何允许运行Visual FoxPro的东西都应该允许在互联网附近的任何地方安装了MSXML。 )
答案 1 :(得分:0)
是的,
FoxPro可以使用Mircrsoft Soap SDK软件连接到任何WebServer服务,这个服务器更可以返回XML。
这是我使用的,安装免费软件“soapsdk.exe”后
local loWS, loP
loWS=createobject("mssoap.soapclient30")
loWS.mssoapinit("http://nn.nn.nnn.nn:80/Default.asmx?WSDL")
loP=loWS.name_public_method(html_param_1,html_param_2...)
loP包含可以以XML格式结合的结果
答案 2 :(得分:0)
虽然没有" native"从VFP调用REST服务的方法,但您可以轻松地创建Windows附带的MSXML2.ServerXMLHTTP对象。我只使用MSSoap.SoapClient30进行SOAP调用(必须安装),但我更喜欢使用MSXML2.ServerXMLHTTP对象进行REST调用。
以下是如何通过VFP调用REST服务的示例。
进行REST GET方法调用的示例
xmlHttp = CREATEOBJECT("MSXML2.ServerXMLHTTP")
xmlHttp.open("GET", "put url with parameters here", null)
xmlHttp.setRequestHeader("Content-Type", "text/xml")
xmlHttp.send("")
result = xmlHttp.responseText
? result
进行REST POST方法调用的示例
xmlHttp = CREATEOBJECT("MSXML2.ServerXMLHTTP")
xmlHttp.open("POST", "put URL here", null)
xmlHttp.setRequestHeader("Content-Type", "text/xml")
xmlHttp.send("put string to send in body")
result = xmlHttp.responseText
? result