【发布时间】:2012-02-18 08:04:00
【问题描述】:
如何从作为客户端的黑莓应用程序向服务器发送 JSON 请求,以从服务器获取信息以在 BB 应用程序中使用它们 我在 windows 7 下使用 blackberry eclipse
我试试这个代码
public void loginRequest() throws IOException, JSONException{
HttpConnection c = null;
InputStream is = null;
int rc;
JSONObject postObject = new JSONObject();
postObject.put("method", method);
//postObject.put("params", Parameters);
try{
c = (HttpConnection)Connector.open(urlPath);
// Set the request method and headers
c.setRequestMethod(HttpConnection.GET);
c.setRequestProperty("Content-Type", "application/json;charset=UTF-8");
c.setRequestProperty("Content-Length", "" + (postObject.toString().length() - 2));
c.setRequestProperty("method", "GET");
// Getting the response code will open the connection,
// send the request, and read the HTTP response headers.
// The headers are stored until requested.
rc = c.getResponseCode();
if (rc != HttpConnection.HTTP_OK){
throw new IOException("HTTP response code: " + rc);
}
is = c.openInputStream();
// Get the length and process the data
int len = (int)c.getLength();
if (len > 0){
int actual = 0;
int bytesread = 0 ;
byte[] data = new byte[len];
while ((bytesread != len) && (actual != -1)){
actual = is.read(data, bytesread, len - bytesread);
bytesread += actual;
}
//Get the JSON String
System.out.println(new String(data));
}
else{
int ch;
while ((ch = is.read()) != -1){
//TODO
/*
process((byte)ch);
*/
}
}
}catch (ClassCastException e){
throw new IllegalArgumentException("Not an HTTP URL");
}finally {
if (is != null)
is.close();
if (c != null)
c.close();
}
}
我通过线程中的run方法调用这个方法
当模拟器到达 (rc = c.getResponseCode();) 运行代码停止时
我调试了代码,当它到达这个错误的语句时它会停止
本地连接在 ~ 120000 后超时
任何帮助
【问题讨论】:
标签: java json http blackberry blackberry-eclipse-plugin