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

3 番目に、メソッド本体config内のオブジェクトを介したメソッドのリモート アクセスを許可します。InitializeService

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

サーバー側は以上です。これで、SendEmailJavaScript クライアントからメソッドを呼び出すことができます。ご覧のとおり、datajsライブラリを使用していますが、次の組み込みDevExtremeクラスを使用することをお勧めしますODataContext

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

詳細については、ドキュメントリンクを参照してください。

于 2015-07-21T12:31:12.487 に答える