blackberry - name - metadatos html para buscadores
Estoy enviando datos a través de HTTPS pero el lado del servidor dice que no lo está recibiendo (3)
Supongo que el motivo es "Content-Type" => "application/x-www-form-urlencoded"
. Este tipo de POST existe para enviar una lista de pares key=value
. Entonces, el servidor de su lado analizará los datos de publicación en términos de pares key=value
. Creo que en su caso simplemente no analiza los datos de entrada obtenidos, porque no envía los datos en la forma pares de key=value
(en su lugar, simplemente vierte toda la cadena json jsonObject.toString().getBytes("UTF-8")
en él).
Entonces, básicamente, necesitas formar un par de valores clave "json = YOUR_JSON_HERE". Luego en el servidor obtendrás tus datos como el valor del parámetro json
:
URLEncodedPostData encPostData = new URLEncodedPostData("UTF-8", false);
encPostData.append("json", jsonObject.toString());
byte[] postData = encPostData.toString().getBytes("UTF-8");
Otra opción (y por cierto sería la forma más adecuada de hacer esta tarea en particular) sería utilizar el tipo de POST "multipart / form-data". Sin embargo, será un poco más difícil implementarlo si nunca antes lo hiciste en BB.
Creo una aplicación que envía algunos datos a una red segura.
En el lado del servidor, necesitan la información como objeto JSON. Para eso estoy creando los datos como un objeto JSON y escribiendo esos datos en el OutputStream
de la conexión.
Pero la respuesta del lado del servidor que dice que no está obteniendo los datos que estoy transmitiendo.
El fragmento de código que estoy usando es algo como el que se detalla a continuación:
HttpsConnection _connection = (HttpsConnection)Connector.open("https://gmail.com/",Connector.READ_WRITE, true); _connection.setRequestMethod(HttpsConnection.POST);
_connection.setRequestProperty("If-Modified-Since", "29 Oct 1999 19:43:31 GMT");
_connection.setRequestProperty("User-Agent","Profile/MIDP-2.0 Configuration/CLDC-1.0");
_connection.setRequestProperty("Content-Language", "en-US");
_connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
byte[] postData = jsonObject.toString().getBytes("UTF-8");
_connection.setRequestProperty("Content-Length", Integer.toString(postData.length));
_connection.setRequestProperty("jsondata",jsonObject.toString());
OutputStream os = _connection.openOutputStream();
os.write(postData);
os.flush();
Por favor, ayúdame a resolver el problema.
Tiene que agregar el sufijo apropiado a su url, por ejemplo: Si usa el simulador, use: https: //gmail.com/; deviceside = true, etc.
Tengo el mismo problema pero finalmente encuentro la solución:
HttpConnection c = (HttpConnection)Connector.open(url);
c.setRequestMethod(HttpConnection.POST);
c.setRequestProperty(
HttpProtocolConstants.HEADER_CONTENT_TYPE, PostData.getContentType());
c.setRequestProperty(
HttpProtocolConstants.HEADER_CONTENT_LENGTH,String.valueOf(oPostData.size()));
c.setRequestProperty("Content-Length", Integer.toString(oPostData.size()));
c.setRequestProperty("Content-Type","application/json");
byte [] postDataBytes = jobj.toString().getBytes("UTF-8");
os = c.openOutputStream();
os.write(postDataBytes);
os.flush();