黑莓手机中的Http POST

问候,

我正在尝试从BlackBerry Application设置服务器连接。 我能够获得有关服务器状态的响应代码。 现在我有一些值,我必须POST到服务器

它就像注册页面值(用户名,密码,年龄)必须发送到服务器。

ConnectionFactory connFact = new ConnectionFactory(); ConnectionDescriptor connDesc; connDesc = connFact.getConnection(url); if (connDesc != null) { HttpConnection httpConn; httpConn = (HttpConnection)connDesc.getConnection(); try { final int iResponseCode = httpConn.getResponseCode(); UiApplication.getUiApplication().invokeLater(new Runnable() { public void run() { Dialog.alert("Response code: " + Integer.toString(iResponseCode)); } }); } catch (IOException e) { System.err.println("Caught IOException: " + e.getMessage()); } } 

那是我用来获取响应代码的代码。 如果有人可以帮助我如何向服务器发出POST请求,我将不胜感激。状态的服务器URL是company.com/app/version/stats

当它注册时,它将是company.com/app/register

谢谢

  ... httpConn = (HttpConnection)connDesc.getConnection(); httpConn.setRequestMethod(HttpConnection.POST); httpConn.setRequestProperty("username",name); httpConn.setRequestProperty("password",pass); .... 

你使用什么类型的POST? 如果您只是传递键值对,那么它应该是“application / x-www-form-urlencoded”内容类型的POST。

那么,缺少你的代码是:

1)。 在您的连接上设置适当的内容类型:

 httpConn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); 

2)。 准备要通过POST发送到服务器的内容:

 URLEncodedPostData encPostData = new URLEncodedPostData("UTF-8", false); encPostData.append("username", username); encPostData.append("password", password); encPostData.append("age", age); byte[] postData = encPostData.toString().getBytes("UTF-8"); 

3)。 设置连接的内容长度(此步骤可以是可选的 – 首先尝试没有这个,可能BB OS足够聪明,可以自动设置):

 httpConn.setRequestProperty("Content-Length", String.valueOf(postData.length)); 

4)。 打开OutputStream并将内容写入其中(代码简化):

 OutputStream os = httpConn.openOutputStream(); os.write(postData); os.flush();