Hi, You need to set username and password in your http request. You can modify following code to do so
DefaultHttpClient httpclient = new DefaultHttpClient()HttpGet httpget = new HttpGet(url) httpget.setHeader("Content-Type", "application/json")httpget.setHeader("Accept", "application/json")httpget.addHeader(BasicScheme.authenticate( new UsernamePasswordCredentials(RANGER_USERNAME, RANGER_PASSWORD), "UTF-8", false))val response = httpclient.execute(httpget) On Mon, Jun 20, 2016 at 1:30 PM, haihui xu <suzhou...@gmail.com> wrote: > Hi, Ranger team! I recently study on ranger, and call ranger rest api > by httpclient, but it failed! > The following is mycode: > > public static void testGetRequest(String url) throws > IllegalStateException, IOException { > HttpClient client = new HttpClient(); > StringBuilder sb = new StringBuilder(); > InputStream ins = null; > GetMethod method = new GetMethod(url); > method.getParams().setParameter(HttpMethodParams.RETRY_HANDLER, new > DefaultHttpMethodRetryHandler(3, false)); > int statusCode = client.executeMethod(method); > System.out.println("statusCode: " + statusCode); > if (statusCode == HttpStatus.SC_OK) { > ins = method.getResponseBodyAsStream(); > byte[] b = new byte[1024]; > int r_len = 0; > while ((r_len = ins.read(b)) > 0) { > sb.append(new String(b, 0, r_len, method.getResponseCharSet())); > } > } > method.releaseConnection(); > if (ins != null) { > ins.close(); > } > } > > public static void main(String[] args) throws Exception { > String url = "http://10.133.47.146:6080/service/public/v2/api/policy/1"; > testGetRequest(url); > } > > Run the above program, the statusCode is 401! Unauthorized ! > Could I add any parameter when I call the rest api? How to resolve the > problem? I hope you can describe how to call ranger rest api on > https://cwiki.apache.org/confluence/display/RANGER/Index . > > Thank you very much! Good Luck! > > Haihui Xu. > -- Regards: HAFIZ MUJADID