2015-07-20 65 views
0

我有一个web服务。这是接口:从android执行webservice功能

<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 protected]"); 
       request.setHeader("Accept", "application/json"); 
       request.setHeader("Content-type", "application/json"); 

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

任何人都可以请帮我执行从我devextreme应用程序的SendEmail功能?

+0

任何人都可以帮忙吗? –

回答

0

请按照以下步骤操作。

在第一,界面应该是这样的:通过config对象

<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 

第三,允许方法的远程访问:

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

在第二,添加WebGet属性的方法实现上述InitializeService方法体内:

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

这就是服务器端。现在可以从JavaScript客户端调用SendEmail方法。依我之见,你使用datajs库,但我会建议你使用内置DevExtreme类称为ODataContext

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

欲了解更多信息,请按照文件link

+0

谢谢,我会试试看! –

+0

@HannesduPreez欢迎您。 – seteh