爱帮公交公布了自己的openAPI,但是之前自己不知道,就通过chrome的开发人员控制台工具分析了爱帮工具的http请求头,然后在android端进行http请求,获得公交信息。
还算顺利,其中的一点曲折就是服务器端返回的是 zip压缩的数据,要使用ziphelper进行解压缩。
String url="http://wap.aibang.com:8081/client/servlet/busline.c?city=北京&keyword=618&s=android_noxy"; HttpGet httpGet = new HttpGet(url); httpGet.addHeader("PLATFORM_N", "abbus_android"); httpGet.addHeader("CLIENT_V", "abbus_android_v3.0"); httpGet.addHeader("CONTENT_TYPE", "pzip"); httpGet.addHeader("ENCODING", "utf-8"); httpGet.addHeader("UID", "b239cc83f23c4dab90fe6a27e329dea73b7a052"); httpGet.addHeader("SOURCE", "0"); httpGet.addHeader("UA", "sdk,8,2.2,sdk-eng 2.2 FRF91 43546 test-keys,Unknown,null"); HttpClient httpclient = new DefaultHttpClient(); //请求HttpClient,取得HttpResponse HttpResponse httpResponse; try { httpResponse = httpclient.execute(httpGet); if (httpResponse.getStatusLine().getStatusCode() == HttpStatus.SC_OK) { // String strResult = EntityUtils.toString(httpResponse.getEntity().getContent()); InputStream is = httpResponse.getEntity().getContent(); is = new GZipInputStream(is, GZipInputStream.TYPE_GZIP, false); BufferedReader br = new BufferedReader(new InputStreamReader(is)); String line; StringBuilder sb = new StringBuilder(); while ((line = br.readLine()) != null) { sb.append(line); } String s = sb.toString(); Toast.makeText(this, s, Toast.LENGTH_LONG).show(); } }