2017-06-08 36 views
1

簡単なHTML、CSS、角度で新しいWebアプリケーションプロジェクトを開始します。私たちは、既存のWebサービスを使用して一部のサーバーからデータを取得していますが、使用しようとしているサービスの1つが公共サービスです。Global Weather SOAP Service角でHTTP経由でSOAPリクエストを送信しますか?

Angularでリクエストを行う簡単な方法はありますか?実は私たちの「テスト」のコードは(jQueryを使って、まだ動作しません。)このですが、HTTPまたはRxJSと角度のアプローチを実装する方が良いだろう...

import { Injectable } from '@angular/core'; 
import * as $ from 'jquery'; 

@Injectable() 
export class SoapServiceProvider { 

    constructor() { } 

    testingSoapRequest() { 

     $.ajax({ 
      url: 'http://www.webservicex.net/globalweather.asmx?op=GetCitiesByCountry', 
      data: { CountryName: 'Spain' }, 
      success: (data) => { 
       console.log('Hey, we got a success response', data); 
      }, 
      error: (err) => { 
       console.error('We got an error :(', err); 
      } 
     }); 

    } 

} 

私はの要求を行うためにはJQueryを使用したことがありません任意のタイプ(AngularJSとRxJSではAngularを使って$ httpを使用しています)ので、実際に可能にする正しい方法はわかりません。

注:GitHubにAngular SOAP Requestsを作成するライブラリがありますが、新しいAngularバージョンでは動作しないようです。

This is the GitHub Autopulous SOAP link...

+1

Angularには、JQuery Ajaxコールと同様のRESTコール用のHttpModuleがあります。詳細はこちら[https://angular.io/docs/ts/latest/guide/server-communication.html] –

答えて

1

まず第一に、角度を使用すると、ボックスの外に必要なすべてを提供しますし、それはあまりにも速く、通常より強力だが、jQueryのを使用しないでください。

ここでのHTTPリクエストを作成、たとえばイオンページです:、

<ion-navbar *navbar> 
    <ion-title> 
     Home 
    </ion-title> 
</ion-navbar> 

<ion-content class="home"> 
    <button (click)="makeGetRequest()">GET Request</button> 
    <button (click)="makePostRequest()">POST Request</button> 
</ion-content> 

今、あなたはSOAPメッセージングを使用しているので、:

ロジックはこのような単純なテンプレートにフックすることができることJSONをSOAPと互換性のあるXMLに変換し、同様にレスポンスを取得するときにJSONを分解する必要があります。 > XMLがある - 私は強くが、それは古いTECNOLOGYだという事実にもかかわらず、メッセージが原因より冗長に同じデータに注釈を付けるために必要なコードと、最も重要なのは、JSONに変換するはるかに大きいです、ので、あなたは、SOAPを使用しないように助言する

遅い、特にJavascriptで。

言われているとおり、ここでは2種類の間で変換するvery popular libraryです。

+0

ありがとう@ maninak、これは別のSOAPサービスを消費するコードですが、それでも動作しません。 ' this.http .post( 'のhttp:// localhostを:9000/OurService.svc /'、 '{ログイン= "TESTUSER"、パスワード= "pwd123"、DEVICETYPE = "iOSの"}'、オプション)エラー:> { console.log( 'Error :('、error); .subscribe console.log( 'Error :('、error); console.log( 'エラー:('エラー) ; }); ' エラーが発生しました。404が見つかりません。呼び出すWebメソッドを指定する方法はありますか? –

+0

@JuanJoseAdan URLにエラーがあり、これは 'localhost:9000/OurService.svc /'を意味します。つまり、要求のネットワーキング部分が機能していますg適切に。だから私の答えがあなたの質問を覆っているなら、それを閉じるためにそれに答えてください。 – maninak

関連する問題