2015-07-20 3 views
0

У меня есть веб-сервис. Это интерфейс:Выполнение функции webservice от android

<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 

Теперь я хотел бы назвать эту функцию SendEmail из моей devextreme приложения. Я пытаюсь это, что, очевидно, не работает (отсюда и этот вопрос):

    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(); 

Может кто-нибудь, пожалуйста, помогите мне выполнить функцию SendEmail из моего devextreme приложения?

+0

Может ли кто-нибудь помочь? –

ответ

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 библиотеку, но я бы рекомендовал использовать встроенный в 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

Смежные вопросы