2009-12-04 12 views
7

Estoy creando una conexión HTTPS y establecer la propiedad petición GET como:¿Cómo enviamos datos a través del método GET?

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

Pero ¿Cómo se envían los parámetros GET? puedo configurar la propiedad petición como esta:

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

o tengo que escribir en el flujo de salida de la conexión?

o ¿tengo que enviar los Parámetros/Valores agregándolo a la url?

+2

Qué lenguaje es esto? – monksy

+0

No soy desarrollador de Blackberry. Pero puede probar fácilmente su código usando el detector de red (overkill de IMO) o un simple script del lado del servidor que solo generará información de su solicitud. Por ejemplo, en php puede usar: http://www.php.net/manual/en/reserved.variables.request.php –

Respuesta

8

Calling Connection.setRequestProperty() establecerá el encabezado de la solicitud, lo que probablemente no es lo que quiere hacer en este caso (si me preguntan creo que calificó setRequestHeader habría sido una mejor elección) Algunos proxies pueden quitar o reescribir el nombre de encabezados no estándar, por lo que es mejor que se apegue a la convención de pasar datos en la URL GET a través de parámetros de URL.

La mejor manera de hacer esto en un BlackBerry es utilizar la clase URLEncodedPostData para codificar correctamente los parámetros de 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

Sí, los encabezados y propiedades son prácticamente todo lo que puede enviar en un GET. Además, está limitado a una cierta cantidad de caracteres, que dependen del navegador; parece recordar aproximadamente 1024 o 2000, por lo general.

+0

Oye, necesito enviar los Parámetros/Valores a través del encabezado o simplemente anexarlos a la URL. – Bohemian

+0

solo puede agregarlo a la url –

+0

No tiene idea de cómo funciona su entorno, pero al final sus parámetros de solicitud se incluirán en la URL. Puedes hacer esto directamente (usar & para separar pares de clave/valor, = entre clave y valor, caracteres de escape de URL en cadenas) o con suerte dejar que tu API haga eso por ti automágicamente. –

5

HTTP GET parámetros de envío de datos como pares clave/valor codificados dentro de la URL, al igual que: Seguir las reglas

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 

Nota para los caracteres de separación:

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

debe conocer su plataforma específica codifican la cadena nativa función. Javascript utiliza escape, C# utiliza HttpUtility.UrlEncode

Cuestiones relacionadas