2012-01-04 32 views
1

Titanium Appcelerator Project(oAuth 2)でWebサービスとやりとりしており、HTTP POST要求を行う必要があります。私はこのようにカールしてコマンドを作りました。チタン製Appcelerator経由でこのカールクエリーを送信する方法

curl https://api.website.com/oauth/ -i -d "param=value&nextparam=goeshere" -H "Authorization: Basic hashgoeshere" 

これはうまくいきます。しかし、私がAppceleratorで試してみると、私のパラメータはどれもうまくパスされませんし、それがうまく動作していないので、ヘッダーを正しく渡しているかどうかはわかりません。次のように私のチタンのコードは次のとおりです。

xhr.validatesSecureCertificate = true; 
xhr.open("POST","https://api.website.com/oauth"); 

xhr.setTimeout(10000); 

xhr.setRequestHeader('Authorization', "Basic hashgoeshere"); 

//unsure whether I need the next line or not. I don't in curl 
//xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=UTF-8"); 
xhr.send('{"param":"value","nextparam":"goeshere"}'); 

私はAPIサーバでデバッグきた、と私は私がパラメータを送信されていない場合、私はなるだろう、エラーを取得していますので、明らかに私が何か間違ったことをやっています。私はちょうど何がわからない。どんな助けもありがたいです!

答えて

2

あなたxhr.sendコマンドは、パラメータとしてではない文字列をJavaScriptオブジェクトを取る必要があります。

xhr.send({ param :"value", nextparam :"goeshere"}); 
+0

感謝を!それは知らなかった。あなたはそのようなコードで他の問題を見ますか?それはまだ適切に送信されていないと私はその変更を行ったにもかかわらず、私は前に同じ応答を得ています。 – swickblade

+0

他のすべてはOKです。また、xhr.setRequestHeader( 'Content-Type'、 'application/x-www-form-urlencoded')を試してください。あなた自身もPOST文字列を作成し、それが役立つかどうかを確認することができます:xhr.send( 'param = value&nextparam = goeshere'); –

+0

私のビルドは何らかの理由で更新されていなかったので、私は更新が見られませんでした。私はそれを修正し、今これは動作します。ありがとう! – swickblade

関連する問題