public void readBankMandiri() throws Exception { HttpGet httpGet; HttpPost httpPost; HttpResponse resp; List<NameValuePair> formParams; UrlEncodedFormEntity entity; // open login page httpGet = new HttpGet("https://ib.bankmandiri.co.id/retail/Login.do?action=form&lang=in_ID"); resp = httpClient.execute(httpGet); EntityUtils.consume(resp.getEntity()); // login formParams = new ArrayList<NameValuePair>(); formParams.add(new BasicNameValuePair("action", "result")); formParams.add(new BasicNameValuePair("userID", "budi_handuk888")); formParams.add(new BasicNameValuePair("password", "123456")); formParams.add(new BasicNameValuePair("image.x", "0")); formParams.add(new BasicNameValuePair("image.y", "0")); entity = new UrlEncodedFormEntity(formParams, "UTF-8"); httpPost = new HttpPost("https://ib.bankmandiri.co.id/retail/Login.do"); httpPost.setEntity(entity); resp = httpClient.execute(httpPost); EntityUtils.consume(resp.getEntity()); // check if login success? String successUrl = "https://ib.bankmandiri.co.id/retail/Redirect.do?action=forward"; Header[] locationHeaders = resp.getHeaders("Location"); if (locationHeaders.length == 0 || locationHeaders[0].getValue().equals(successUrl) == false) { System.out.println("Login failed!"); return; } // open page to obtain account list httpGet = new HttpGet("https://ib.bankmandiri.co.id/retail/TrxHistoryInq.do?action=form"); resp = httpClient.execute(httpGet); // read content StringBuilder buffer = new StringBuilder(); InputStream instream = resp.getEntity().getContent(); BufferedReader reader = new BufferedReader(new InputStreamReader(instream)); String line; while ((line = reader.readLine()) != null) { buffer.append(line); } // find string between: <select name="fromAccountID"> and </select> String begin = "<select name=\"fromAccountID\">", end = "</select>"; int beginPos = buffer.indexOf(begin) + begin.length(), endPos = buffer.indexOf(end, beginPos); String accountStr = buffer.substring(beginPos, endPos); // account values is in each of <option value="{acc_id}">{acc_no}</option> ArrayList<String> accountList = new ArrayList<String>(); begin = "<option value=\""; end = "\""; beginPos = 0; endPos = 0; while (true) { if ( (beginPos = accountStr.indexOf(begin, endPos)) == -1) break; beginPos += begin.length(); if ( (endPos = accountStr.indexOf(end, beginPos)) == -1) break; // first account id will empty string "Silahkan Pilih" if (beginPos != endPos) { String accId = accountStr.substring(beginPos, endPos); accountList.add(accId); } } // get account statement formParams = new ArrayList<NameValuePair>(); formParams.add(new BasicNameValuePair("action", "result")); formParams.add(new BasicNameValuePair("fromAccountID", accountList.get(0))); // <--- baca account pertama saja formParams.add(new BasicNameValuePair("searchType", "R")); formParams.add(new BasicNameValuePair("fromDay", "3")); // <--- tanggal from & to, cukup jelas ya formParams.add(new BasicNameValuePair("fromMonth", "12")); formParams.add(new BasicNameValuePair("fromYear", "2010")); formParams.add(new BasicNameValuePair("toDay", "3")); formParams.add(new BasicNameValuePair("toMonth", "1")); formParams.add(new BasicNameValuePair("toYear", "2011")); formParams.add(new BasicNameValuePair("sortType", "Date")); formParams.add(new BasicNameValuePair("orderBy", "ASC")); entity = new UrlEncodedFormEntity(formParams, "UTF-8"); httpPost = new HttpPost("https://ib.bankmandiri.co.id/retail/TrxHistoryInq.do"); httpPost.setEntity(entity); resp = httpClient.execute(httpPost); // read content buffer = new StringBuilder(); instream = resp.getEntity().getContent(); reader = new BufferedReader(new InputStreamReader(instream)); while ((line = reader.readLine()) != null) { buffer.append(line + "\n"); } //find string between: <!-- Start of Item List --> and <!-- End of Item List --> begin = "<!-- Start of Item List -->"; end = "<!-- End of Item List -->"; beginPos = buffer.indexOf(begin) + begin.length(); endPos = buffer.indexOf(end, beginPos); String accountStmt = buffer.substring(beginPos, endPos); System.out.println(accountStmt); // logout httpGet = new HttpGet("https://ib.bankmandiri.co.id/retail/Logout.do?action=result"); resp = httpClient.execute(httpGet); EntityUtils.consume(resp.getEntity()); }
Senin, 03 Januari 2011
Baca mutasi Bank Mandiri
Langganan:
Posting Komentar (Atom)
kok gak bisa dicompile ya Gan scriptnya ???
BalasHapus