0

我找不到适合这种情况的任何好的样本。

此外,WCF 服务使用了 Entity Framework 6.0,它应该返回大的 JSON 结构。现在我只是想找到一个可以调用简单 WCF 服务的简单示例:

[ServiceContract]
public interface ITest
{
    [OperationContract(Name = "Test_GetDate")]
    [WebGet(UriTemplate = "/GetDate", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)]
    string GetDate();
...

        public class Test : ITest
        {
            public string GetDate()
            {
                return (DateTime.UtcNow.ToString());
            }
    ...

谢谢

4

1 回答 1

1

是的,它可以。这个场景对我有用,但我使用的是 XML 格式(WCF SOAP)而不是 rest/json,但你可以试试。

-我使用soap UI来确定soap Envelope应该是什么样子。这个工具是免费的http://www.soapui.org/并且很容易使用。

- 创建新的 Soap UI 项目并在输入中粘贴 WSDL 地址,应用程序将生成空的 XML 请求 - 肥皂信封。

- 您可以从此应用程序测试您的服务

-我正在使用 cfhttp 从 cf 调用服务:

我们找到了肥皂信封并将其放入 cf 变量中:

    <cfsavecontent variable="soapBody">

        <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tem="http://tempuri.org/" xmlns:ozon="http://schemas.datacontract.org/blah/prc">
           <soapenv:Header/>
           <soapenv:Body>
              <tem:myservicemethod>
                 <tem:someParameter1>This is my first param</tem:someParameter1>
                 <tem:someParameter2>
                    <blah:AC>This is my second parameter</blah:AC>
                 </tem:someParameter2>
              </tem:myservicemethod>
           </soapenv:Body>
        </soapenv:Envelope>                         

    </cfsavecontent>    

现在调用服务。这是我从 Ben Nadel 的博客中挖掘出来的:http ://www.bennadel.com/blog/1809-Making-SOAP-Web-Service-Requests-With-ColdFusion-And-CFHTTP.htm

    <cfhttp
         url="http:/SomeService/Service.svc"
         method="post"
         result="httpResponse">
             <!---
             TIP : Look into your WSDL to figure out SOAPAction value
             --->                        
        <cfhttpparam
             type="header"
             name="SOAPAction"
             value="http://tempuri.org/SomeService/myservicemethod"
             /> 
        <cfhttpparam
             type="header"
             name="accept-encoding"
             value="no-compression"
             />          
        <cfhttpparam
             type="xml"
             value="#trim( soapBody )#"
             />
    </cfhttp>   


<cfdump var="#httpResponse#" />
于 2013-09-21T14:35:07.660 回答