public static byte[] transceiveAndGetResponse(byte[] command,IsoCard isoCard,String getResponseApdu) throws IOException {
  byte[] resp=isoCard.transceive(command);
  byte[] buf=new byte[2048];
  int offset=0;
  while (resp[resp.length - 2] == 0x61) {
    System.arraycopy(resp,0,buf,offset,resp.length - 2);
    offset+=resp.length - 2;
    resp=isoCard.transceive(decodeHex(getResponseApdu));
  }
  System.arraycopy(resp,0,buf,offset,resp.length);
  byte[] properlySized=new byte[offset + resp.length];
  System.arraycopy(buf,0,properlySized,0,properlySized.length);
  return properlySized;
}

public static byte [ ] transceiveAndGetResponse ( byte [ ] command , IsoCard isoCard , String getResponseApdu ) throws IOException { byte [ ] resp = isoCard . transceive ( command ) ; byte [ ] buf = new byte [ 2048 ] ; int offset = 0 ; while ( resp [ resp . length - 2 ] == 0x61 ) { System . arraycopy ( resp , 0 , buf , offset , resp . length - 2 ) ; offset += resp . length - 2 ; resp = isoCard . transceive ( decodeHex ( getResponseApdu ) ) ; } System . arraycopy ( resp , 0 , buf , offset , resp . length ) ; byte [ ] properlySized = new byte [ offset + resp . length ] ; System . arraycopy ( buf , 0 , properlySized , 0 , properlySized . length ) ; return properlySized ; }
transceives the byte [ ] command to the isocard . automatically queries for more response data if the status code indicates that more data is available .
