2009-12-04 19 views
7

私は、HTTPS接続を作成し、GETリクエストとしてプロパティを設定しています:GETメソッドを使用してデータを送信するにはどうすればよいですか?

_httpsConnection = (HttpsConnection) Connector.open(URL, Connector.READ_WRITE); 
_httpsConnection.setRequestMethod(HttpsConnection.GET); 

しかし、どのように私は、GETパラメータを送信できますか?

_httpsConnection.setRequestProperty("method", "session.getToken"); 
_httpsConnection.setRequestProperty("developerKey", "value"); 
_httpsConnection.setRequestProperty("clientID", "value"); 

または私は、接続の出力ストリームに記述する必要があります: は、私はこのような要求プロパティを設定しますか?

または、URLに添付してパラメータ/値を送信する必要がありますか?

+2

これは何語ですか? – monksy

+0

私はブラックベリー開発者ではありません。しかし、ネットワークスニッファ(IMO overkill)や単純なサーバーサイドスクリプトを使用してコードを簡単にテストすることができます。このスクリプトはリクエストの情報を出力します。例えばphpの場合、次のようにすることができます:http://www.php.net/manual/en/reserved.variables.request.php –

答えて

8

は、おそらくあなたは、あなたが私に言わせれば、私はsetRequestHeaderは良い選択だっただろう、それを呼び出すと思います(この場合は何をしたいのかではありませんリクエストヘッダを設定しますConnection.setRequestProperty()を呼び出す使用しています)。一部のプロキシは非標準ヘッダーの名前を取り除いたり書き直したりする可能性があるため、URLパラメータを使用してGET URLにデータを渡すという慣習に従うことをお勧めします。

BlackBerryでこれを行うための最善の方法は、適切にあなたのURLパラメータをエンコードするためにURLEncodedPostDataクラスを使用することです:

URLEncodedPostData data = new URLEncodedPostData("UTF-8", false); 
data.append("method", "session.getToken"); 
data.append("developerKey", "value"); 
data.append("clientID", "value"); 
url = url + "?" + data.toString(); 
2

確かに、ヘッダーとプロパティはGETでほとんどすべて送信できます。また、特定の文字数に制限されています。これはブラウザに依存しています。私は通常約1024または2000を思い出しています。 URL内にエンコードのキー/値のペアとして

+0

ちょっとヘッダーを介してパラメータ/値を送信するか、URLに追加するだけです – Bohemian

+0

あなたはただそれをURLに追加することができます –

+0

あなたの環境がどのように動作するかは考えられませんが、最終的にはリクエストパラメータがURLに含まれます。これを直接行うことができます(キーと値のペアを区切るには&とキーと値の間に、文字列ではURLエスケープ文字を使用します)。あるいは、APIが自動的にそのようなことをするようにしてください。 –

5

HTTP GET送信データパラメータは、ただ好き:

GET /example.html      // without parameters 
GET /example.html?Id=   1  // with one basic parameter 
GET /example.html?Id=1&Name=John%20Doo // with two parameters, second encoded 

注フォロールールを文字の区切りのために:

? - split URL in two pieces: adddress to left and paremeters to right 
& - must be used to separate on parameter from another 

あなたは、ご使用のプラットフォーム固有のネイティブ文字列のエンコードを知っている必要があります関数。 Javascriptがescape使用して、C#がHttpUtility.UrlEncode

関連する問題