2009-12-04 4 views
7

Je crée une connexion HTTPS et définir la propriété de demande que GET:Comment envoyer des données via la méthode GET?

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

Mais comment puis-je envoyer les paramètres GET? Dois-je définir la propriété telle demande:

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

ou dois-je écrire dans le flux de sortie de la connexion?

ou dois-je envoyer le paramètre/les valeurs en l'ajoutant à l'URL?

+2

Quelle langue est-ce? – monksy

+0

Je ne suis pas développeur blackberry. Mais vous pouvez facilement tester votre code en utilisant sniffer réseau (IMO overkill) ou un script côté serveur simple qui va juste afficher des informations de votre demande. Par exemple en php vous pouvez utiliser: http://www.php.net/manual/fr/reserved.variables.request.php –

Répondre

8

Appel Connection.setRequestProperty() établira l'en-tête de demande, ce qui est probablement pas ce que vous voulez faire dans ce cas (si vous me demandez, je pense appeler setRequestHeader aurait été un meilleur choix). Certains proxies peuvent supprimer ou réécrire le nom des en-têtes non standard. Il est donc préférable de respecter la convention de transmission des données dans l'URL GET via les paramètres d'URL.

La meilleure façon de le faire sur un BlackBerry est d'utiliser la classe URLEncodedPostData pour encoder vos paramètres d'URL:

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

Oui, les en-têtes et les propriétés sont à peu près tout ce que vous pouvez envoyer dans un GET. En outre, vous êtes limité à un certain nombre de caractères, ce qui dépend du navigateur - je me souviens d'environ 1024 ou 2000, en général.

+0

Hey dois-je envoyer le paramètre/valeurs via l'en-tête ou simplement l'ajouter à l'URL – Bohemian

+0

vous pouvez simplement l'ajouter à l'URL –

+0

Aucune idée de comment votre environnement fonctionne, mais à la fin vos paramètres de demande seront inclus dans l'URL. Vous pouvez soit le faire directement (utilisez & pour séparer les paires clé/valeur, = entre la clé et la valeur, les caractères d'échappement d'URL dans les chaînes), soit, espérons, laissez votre API faire cela automatiquement pour vous. –

5

HTTP GET envoyer des paramètres de données sous forme de paires clé/valeur codée dans les URL, comme:

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 

règles de suivi Note pour les séparateurs:

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

Vous devez connaître votre chaîne native spécifique plate-forme encode fonction. Javascript utilise escape, C# utilise HttpUtility.UrlEncode

Questions connexes