4

私はチタンには新しく、自分のチタンアプリケーションからWebサービスを呼びたいと思っています。 webServiceはjson応答を返します。 私はXMLRPCを使用してwebServiceを呼び出すことに気付いていますが、jsonに関しては非常に混乱しています。javacriptを使用してチタンでWebServiceを呼び出す方法

これまでは、HTTPClientを作成する必要があることがわかりました。私のURL(エンドポイント)は、多くのWebサービスを持っているので、どこで呼び出されるWS名すなわちメソッド名を与える場合

var request = Titanium.Network.createHTTPClient(); 
request.open("POST", "http://test.com/services/json"); 
request.onload = function() { 
    var content = JSON.parse(this.responseText);//in the content i have the response data 
}; 

request.setRequestHeader("Content-Type","application/x-www-form-urlencoded"); //did not understand this line 
request.send(); 

今の問題があります。

  1. メソッド名(HTTPメソッド名)要求

  2. 非同期(ブールの

  3. URL:request.openすなわちチタンモバイル機能openのAPIドキュメントから

    は、3つのパラメータを受け付けますプロパティ)をtrueに設定します。

上記では、"POST"は何ですか?私のWS名がsystem.connectならば、どこでコードで言及しますか?

WSがパラメータを必要とする場合、どうすれば上記のコードをwebServiceフォームにパラメータを送信できますか?

私はrequest.send()がパラメータを送信するために使用できることを知っていますか?

+0

呼び出しようとしているサービスの詳細を教えてください。 RESTまたはSOAPエンドポイント? – tomconte

答えて

14

あなたがすべきWebサービスを呼び出すには:

// create request 
    var xhr = Titanium.Network.createHTTPClient(); 
    //set timeout 
    xhr.setTimeout(10000); 

    //Here you set the webservice address and method 
    xhr.open('POST', address + method); 

    //set enconding 
    xhr.setRequestHeader("Content-Type", "application/json; charset=utf-8"); 

    //send request with parameters 
    xhr.send(JSON.stringify(args)); 

    // function to deal with errors 
    xhr.onerror = function() { 

    }; 

    // function to deal with response 
    xhr.onload = function() { 
     var obj = JSON.parse(this.responseText); 

    }; 

アドレスは、あなたのWebサービスのURLです。

は、呼び出したいメソッドです。

address +メソッドはURLです。例: "http://test.com/services/json"呼び出されるメソッドの名前はjsonとなります。

args:変数名はwebserviceパラメータとまったく同じ名前でなければならないjsonオブジェクトです。次のようにパラメータオブジェクトを作成することができます。

var args = {}; 
args.parameter1 = 'blabla'; 
args.parameter2 = 'blaaaa'; 
+0

あなたはアドレス+メソッドによって何を意味するのですか?私のアドレスはhttp://alpha.com/services/jsonで、私の方法はsystem.connectなので、それはhttp://alpha.com/services/jsonになります。 + system.connectまたはhttp://alpha.com/services/json/system.connect ?? –

+0

私は+記号があるとき、私は2つの文字列を連結していた。 1つはWebサービスエンドポイント "alpha.com/services/json"のURLで、もう1つは "system.connect"というメソッドです。あなたはそれを行うこともできますし、完全なURL "alpha.com/services/json/system.connect"を書くこともできます。 ウェブサービスが正しく機能しているかどうかをテストする必要があります。フィドラー2を使用してテストすることができます。 – Canastro

+0

だから...それは働いていますか? – Canastro

関連する問題