我可以用C#连接到Java API吗?
我的任务是编写一个应用程序来连接双击DART API并下载广告创意 API目前仅为Java,但他们正在(最终)发布一个SOAP版本 作为一名C#开发人员,我希望用C#编写应用程序并访问Java API,直到SOAP API可用为止 我能做这个吗?如果是,怎么做 如果没有,我将学习Java,编写应用程序,然后在SOAP API可用时重做,但这不是首选的操作过程我可以用C#连接到Java API吗?,c#,java,web-services,api,C#,Java,Web Services,Api,我的任务是编写一个应用程序来连接双击DART API并下载广告创意 API目前仅为Java,但他们正在(最终)发布一个SOAP版本 作为一名C#开发人员,我希望用C#编写应用程序并访问Java API,直到SOAP API可用为止 我能做这个吗?如果是,怎么做 如果没有,我将学习Java,编写应用程序,然后在SOAP API可用时重做,但这不是首选的操作过程 谢谢您的帮助。这是一个web服务API还是提供给您的JAR文件?在后一种情况下,J#可能是一种选项,在这个线程中还有一些其他桥接选项:作为
谢谢您的帮助。这是一个web服务API还是提供给您的JAR文件?在后一种情况下,J#可能是一种选项,在这个线程中还有一些其他桥接选项:作为一种旁白,我可以建议您以RESTful的方式编写web服务,而不是(或结合)SOAP?这样做的好处是,您可能希望在将来使用服务的任何语言之间都具有互操作性,而不仅仅是那些可以基于WSDL生成代码的语言。只是想一想。是的,你可以这样做,不久前我们也做了类似的事情 双击API是基于Java的,本质上是一组查询数据库的方法 您需要做的是使用Axis2之类的东西将这些方法包装到web服务中,然后将web服务部署到Tomcat服务器(所有这些都是开源的)。这将公开web服务,然后您可以从任何您喜欢的地方调用web服务 因此,在您的例子中,您在VisualStudio中添加了一个web服务引用,然后您的C#类将调用调用双击Java方法的web服务 实际的Java代码是最少的(大约10行),因为它所做的只是一个调用,然后格式化输出。部署比编写代码花费的时间更长 我们的Java开发环境是Eclipse,我在博客中提到了它。我认为使用J#层可能是一个不错的选择。我以前只用过一次,但它对我起了作用。可能是你的解决方案。它是一个Java虚拟机,将Java字节码转换为.NETIL 您可以做的是使用ikvmc.exe将Java API(作为jar或源文件提供)编译成.NET程序集,然后从C#项目中引用该程序集 IKVM对Java用户界面(AWT)的支持是有限的,但因为它是一个API,所以这不应该是相关的 我还没有亲自尝试过,所以我不能保证这真的有效
请看我们实际上采用了稍微不同的方法
虽然这不是最佳方法,但它在短期内适用于此过程,从长期来看,当SOAP解决方案可用时,web服务很容易更新。忘记Java DART API,转而使用这种新的web服务API方法:
我使用IKVMC转换了jar文件,并且能够在Google Eng授予访问权限后立即开始使用API。现在,我只需浏览文档,了解如何做我需要的事情。