1

我需要将POSTJSON 的主体发送到 Blackberry java OS6+ 的 REST 服务。我看过例子,但没有看到如何创建这样的身体。然后,我需要发送之前在POST? 我需要发送的正文示例如下:

身体:

{
  "name" : "my name",
  "password" : "asdf",
  "email" : "mail@mail.com",
  "gender" : 0,
}

服务将返回:

{
   "response": {
     "status": "ok"
   }
}
4

1 回答 1

1

这是解决方案

只需将字符串更改为 JSONObject 主体。

Solamente tenia que cambiar el cuerpo String 一个 JSONObject。

String url = "http://example.json";
String result;
String tipoConexion = Autenticacion.getConnectionString();
public Consumo4()
{        
     try{

         JSONObject json =  new  JSONObject ( 
                "{"+
                    "'name' : 'test',"+
                    "'email' : 'test@test.com',"+
                    "'password' : 'password',"+                     
                    "'gender' : 0,"+                        
                "}" 
                );
        HttpConnection connection = (HttpConnection)Connector.open(url+tipoConexion);
        connection.setRequestMethod(HttpConnection.POST);

        connection.setRequestProperty("Content-Type", "application/json;charset=UTF-8");
        connection.setRequestProperty("Accept", "application/json");
        connection.setRequestProperty("Content-Length", Integer.toString(json.length()));


         System.out.println("JSON A ENVIAR --> " + json);
         String size = "" + json.length();

         OutputStream os = connection.openOutputStream();
         os.write(json.toString().getBytes("UTF-8"));

         ByteArrayOutputStream baos = new ByteArrayOutputStream();
         InputStream responseData = connection.openInputStream();
         byte[] buffer = new byte[20000];
         int bytesRead = responseData.read(buffer);
         while(bytesRead > 0) {
             baos.write(buffer, 0, bytesRead);
             bytesRead = responseData.read(buffer);
         }
         baos.close();
         connection.close();

         result = new String(baos.toByteArray(), "UTF-8");
         System.out.println("JSON RECIBIDO --> " + result);

     } catch (IOException ex) {
        //screen.requestFailed(ex.toString());
         System.out.println("FALLÓ:: " + ex);

     } catch (Exception e) {
        e.printStackTrace();        
     }        
}
于 2013-06-20T23:38:51.693 回答