【问题标题】:Blackberry HttpConnection and query string黑莓 HttpConnection 和查询字符串
【发布时间】:2013-02-21 07:33:23
【问题描述】:

当我附加查询字符串时,我在连接 uri 时遇到了一些问题...我总是返回 400 个 http 代码...但是当我尝试浏览器时,相同的 url,一切都很顺利...

这就是我所拥有的:

String query = "q=hello";
byte[] queryBytes = query.getBytes();

在我的代码中,我使用如下 queryBytes 打开一个 HttpConnection:

String uri = "https://www.google.co.ve/search" + "?" + new String(queryBytes);
HttpConnection request = (HttpConnection) Connector.open(uri);
request.getResponseCode();

如果我不使用字节进行连接,一切都可以正常工作:

String uri = "https://www.google.co.ve/search?q=hello";

提前致谢

【问题讨论】:

  • 为什么您要尝试将参数转换为字节?这应该是 HTTP POST 请求,还是 GET 请求,还是有关系?
  • 我认为您需要在您的 uri 字符串之后添加“;deviceside=false”......

标签: rest blackberry java-me query-string httpconnection


【解决方案1】:

当我尝试这个时,我得到了 http 代码 200。

try {
    String httpURL = "https://www.google.co.ve/search?q=hello";
    HttpConnection httpConn;
    httpConn = (HttpConnection) Connector.open(httpURL);
    httpConn.setRequestMethod(HttpConnection.GET);
    DataOutputStream _outStream = new DataOutputStream(httpConn.openDataOutputStream());
    byte[] request_body = httpURL.getBytes();
    for (int i = 0; i < request_body.length; i++) {
        _outStream.writeByte(request_body[i]);
    }
    DataInputStream _inputStream = new DataInputStream(
    httpConn.openInputStream());
    StringBuffer _responseMessage = new StringBuffer();
    int ch;
    while ((ch = _inputStream.read()) != -1) {
        _responseMessage.append((char) ch);
    }
    String res = (_responseMessage.toString());
    String responce = res.trim();
    httpConn.close();

    Dialog.alert(responce);

} catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}

【讨论】:

  • 这帮助我找到了问题...我已经更新了我的问题以更好地解释它
猜你喜欢
  • 2012-01-27
  • 2011-09-04
  • 2011-01-24
  • 2012-02-18
  • 1970-01-01
  • 2013-02-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多