Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/352.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java HttpGet JSONArray android Progressbar_Java_Php_Android_Json_Http - Fatal编程技术网

Java HttpGet JSONArray android Progressbar

Java HttpGet JSONArray android Progressbar,java,php,android,json,http,Java,Php,Android,Json,Http,我正在尝试为从internet下载的json数组获取一个水平progressbardialog。 这是我目前的代码 protected JSONArray doInBackground(Date... arg0) { try { BufferedReader in = null; String result = null; HttpClient client = new DefaultHttpClient(); HttpConnectionParams.se


我正在尝试为从internet下载的json数组获取一个水平progressbardialog。 这是我目前的代码

protected JSONArray doInBackground(Date... arg0) {
  try {
    BufferedReader in = null;
    String result = null;

    HttpClient client = new DefaultHttpClient();
    HttpConnectionParams.setSoTimeout(client.getParams(), 30000);
    HttpConnectionParams.setConnectionTimeout(client.getParams(),
            30000);

    String getter = arg0[0].getDate();

    URI website = new URI("http://10.0.2.2/bmorg/getEvent?day=" + getter);

    HttpGet request = new HttpGet();
    request.setURI(website);

    HttpResponse response = client.execute(request);

    in = new BufferedReader(new InputStreamReader(response
            .getEntity().getContent()));

    StringBuffer sb = new StringBuffer("");
    String l = "";
    String nl = System.getProperty("line.seperator");
    while ((l = in.readLine()) != null) {
      sb.append(l + nl);
    }

    in.close();
    result = sb.toString();

    return new JSONArray(result);
  } catch (Exception e) {
    _worked = false;
    e.printStackTrace();
  }
  return null;
}

这很好,但我想要的是下载状态。我不知道如何从Http请求和下载的字节中获取大小,以便将其放入progressbar onChange方法。

在此处更新您的进度:

while ((l = in.readLine()) != null) {
      sb.append(l + nl);
    }

您可以使用
AsyncTask.publishProgress
AsyncTask.onProgressUpdate
方法进行更新。

在此处更新进度:

while ((l = in.readLine()) != null) {
      sb.append(l + nl);
    }

您可以使用
AsyncTask.publishProgress
AsyncTask.onProgressUpdate
方法。获取到值,然后在
while
循环中。

获取到值,然后在
while
循环中。

服务器可能不会给出内容长度,在这种情况下,您注定要使用不确定样式。服务器可能不会给出内容长度,在这种情况下,您注定要使用不确定样式。