我创建了WCF服务,该服务托管在服务器上。我可以从桌面应用程序成功调用该服务,但是在终端提示下从curl
调用该服务有困难。
这是服务器呼叫:
如果我想调用一个方法,例如GetVersionInfo,我会这样做:
http://192.168.1.80:9000/WcfServiceLibrary1.CRUDContact/GetVersionInfo
在.Net应用程序中,我会在方法调用之前附加/mex/
,但这既不在这里,也不在那里。
cURL与服务器进行了某种程度的通信,因为如果我指定了第一个之外的其他URI,则会如预期的那样出现404错误。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN""http://www.w3.org/TR/html4/strict.dtd">
<HTML><HEAD><TITLE>Not Found</TITLE>
<META HTTP-EQUIV="Content-Type" Content="text/html; charset=us-ascii"></HEAD>
<BODY><h2>Not Found</h2>
<hr><p>HTTP Error 404. The requested resource is not found.</p>
</BODY></HTML>
如果我只调用基本方法而不使用任何方法,那么我将在浏览器中看到,即显示如何从C#或VB调用服务的屏幕。如果我使用任何方法(甚至是组合方法)进行调用,那么从字面上看,我什么都不会得到,只是空白行。我什至将输出捕获到文件中,一无所有。
我尝试过的cURL行:
$ curl http://192.168.1.80:9000/WcfServiceLibrary1.CRUDContact/mex/GetVersionInfo
$ curl http://192.168.1.80:9000/WcfServiceLibrary1.CRUDContact/GetVersionInfo
$ curl -H "Accept: application/xml" http://192.168.1.80:9000/WcfServiceLibrary1.CRUDContact/GetVersionInfo http://192.168.1.80:9000/WcfServiceLibrary1.CRUDContact/mex/GetVersionInfo
我尝试了其他几种变体,但始终为空。
如何从RESTful WCF服务获取XML?