Asp.net web api 如何使用visual fox pro提供的restful服务?

Asp.net web api 如何使用visual fox pro提供的restful服务?,asp.net-web-api,visual-foxpro,restful-architecture,Asp.net Web Api,Visual Foxpro,Restful Architecture,我已经使用mvc4 asp.net web api创建了一个RestFUL api,我的一个客户需要使用他的visual fox pro系统中的一些服务 他告诉我不能使用我的RestFUL服务,因为没有办法。我对VisualFoxPro一无所知 有没有办法使用VisualFoxPro提供的RestFUL服务?您在这里真的提出了两个问题 1:“在VisualFoxPro中,是否有任何本机功能可以读取RESTfulWeb服务?” 没有。在web服务从一种古怪的浏览器转变为一种核心技术之前,Visua

我已经使用mvc4 asp.net web api创建了一个RestFUL api,我的一个客户需要使用他的visual fox pro系统中的一些服务

他告诉我不能使用我的RestFUL服务,因为没有办法。我对VisualFoxPro一无所知


有没有办法使用VisualFoxPro提供的RestFUL服务?

您在这里真的提出了两个问题

1:“在VisualFoxPro中,是否有任何本机功能可以读取RESTfulWeb服务?” 没有。在web服务从一种古怪的浏览器转变为一种核心技术之前,VisualFoxPro的有意义的开发就停止了,因此这个遗留的xBase系统从未调整过,无法与它们进行通信

2:“是否有任何方法可以将RESTful web服务中的数据获取到VisualFoxPro中?” 对。VFP可以充当COM或ODBC客户端,并且可以利用从这两种方法中的任何一种中继的数据。如果您没有遇到安全墙,并且有足够的技能手动指定HTTP头,那么标准(1)MSXML.XMLhttpRequest对象是您的最佳选择

请注意,虽然至少有一个库可以从JSON转换为VFP可用对象,但您无法使用FoxPro以本机方式使用JSON。如果您有选择的话,最好使用XML,因为您可以利用Visual FoxPro上一版本中引入的XMLAdapater类

(1:“标准”在这里的意思是“windows平台上的标准”。任何允许运行Visual FoxPro的、应该允许在internet附近任何地方运行的东西都已经安装了MSXML。)

FoxPro可以使用mircrosoft Soap SDK软件连接到任何WebServervice,这是最好的返回XML的

这是我在安装免费软件“soapsdk.exe”后使用的

loP contains可以以XML格式生成结果

尽管没有从VFP调用REST服务的“本机”方法,但您可以轻松创建Windows附带的MSXML2.ServerXMLHTTP对象。我只使用了MSSoap.SoapClient30来进行SOAP调用(您必须安装),但对于REST调用,我更喜欢使用MSXML2.ServerXMLHTTP对象

下面是一个如何通过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

严格地说,答案是否定的。然而,你可以通过一些方法来设计这种行为。您知道数据库是SQL Server还是本机数据库吗?RestFUL服务使用SQL azure,Visual FoxPro系统使用本机数据库。必须使用RestFUL服务,据我所知,有一个选项使用WinHttpRequest对象,我们正试图用这个对象调用RestFUL服务。
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