如何从cURL调用RESTful .Net WCF服务?

时间:2018-08-07 22:26:50

标签: terminal windows curl .net

我创建了WCF服务,该服务托管在服务器上。我可以从桌面应用程序成功调用该服务,但是在终端提示下从curl调用该服务有困难。

这是服务器呼叫:

  

http://192.168.1.80:9000/WcfServiceLibrary1.CRUDContact

如果我想调用一个方法,例如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?

0 个答案:

没有答案