0

我有一个网络服务。这是界面:

<ServiceContract()>
Public Interface IService1
    <OperationContract()> _
    Function SendEmail(EmailAddress As String) As Boolean
End Interface

这是 svc 文件中的实现:

Public Function SendEmail(emailaddress As String) As Boolean Implements IService1.SendEmail
    Return Extras.SendEmail(0, 22, emailaddress, "test Email", "Test Email", 0)
End Function

现在,我想在我的 devextreme 应用程序中调用这个 SendEmail 函数。我正在尝试这个,这显然不起作用(因此这个问题):

                 client = new DefaultHttpClient();

                request = new HttpGet(_URL + "/SendEmail(email@subdomain.com");
                request.setHeader("Accept", "application/json");
                request.setHeader("Content-type", "application/json");

                 httpClient = new DefaultHttpClient();
                 response = httpClient.execute(request);
                 responseEntity = response.getEntity();

谁能帮我从我的 devextreme 应用程序中执行 SendEmail 功能?

4

1 回答 1

0

请按照以下步骤操作。

首先,界面应该是这样的:

Public Interface IService1
    Inherits IServiceProvider
    Function SendEmail(EmailAddress As String) As Boolean
End Interface

其次,WebGet在方法实现上面添加属性:

<WebGet> _
Public Function SendEmail(emailAddress As String) As Boolean Implements IService1.SendEmail
    Return DateTime.Now.Ticks Mod 2 <> 0 'Replace with actual code
End Function

config第三,允许通过方法体内的对象远程访问InitializeService方法:

config.SetServiceOperationAccessRule("SendEmail", ServiceOperationRights.AllRead)

这就是服务器端的全部内容。现在SendEmail可以从 JavaScript 客户端调用该方法。如我所见,您正在使用库,但我建议您使用名为datajs的内置类:DevExtremeODataContext

new DevExpress.data.ODataContext({ url: "http://your.domain/DataService.svc" })
    .get("SendEmail", { emailAddress: "hello" })
        .done(handleDone)
        .fail(handleFail);

如需更多信息,请点击文档链接

于 2015-07-21T12:31:12.487 回答