It should be a GET request. 2016-01-08 18:47 GMT+08:00 王琳 <wang...@britecloudtech.com>:
> this is my code ,but have errors : > > > public static List<JobInfo> listAllJobs() { > ArrayList<JobInfo> jobList = new ArrayList<JobInfo>(); > > > HttpPost request = new HttpPost(KYLIN_JOB_SERVER_URL + > "/api/jobs"); > //HttpPost request = new HttpPost(KYLIN_JOB_SERVER_URL + > "/api/cubes"); > try { > HttpClient httpClient = > HttpClients.createDefault(); > > > //HttpMethodBase method = new > HttpMethodBase(KYLIN_JOB_SERVER_URL + "/api/jobs") ; > > request.addHeader("Content-Type", > "application/json"); > String basicAuth > =DatatypeConverter.printBase64Binary(("ADMIN" + ":" + > "KYLIN").getBytes()); > request.addHeader("Authorization", "Basic " + > basicAuth); > > HttpResponse response = > httpClient.execute(request); > > > System.out.println("response.getStatusLine().getStatusCode():"+response.getStatusLine().getStatusCode()); > > if (response.getStatusLine().getStatusCode() != > 200) { > throw new RuntimeException("Failed : HTTP > error code : " + response.getStatusLine().getStatusCode()); > } > > > HttpEntity entity = response.getEntity(); > InputStream is = entity.getContent(); > byte[] responseBody = IOUtils.toByteArray(is); > String json = new String(responseBody); > log.debug(json); > > > System.out.println("json:"+json); > // ObjectMapper om = new ObjectMapper(); > // jobList.addAll((List<JobInfo>) om.readValue(json, > new TypeReference<List<JobInfo>>() { > // })); > > > } catch (Throwable t) { > t.printStackTrace(); > } finally { > request.releaseConnection(); > } > return jobList; > } > > > > console ERRORS output: > > > 18:43:03 RequestAddCookies - CookieSpec selected: best-match > 18:43:03 RequestAuthCache - Auth cache not set in the context > 18:43:03 PoolingHttpClientConnectionManager - Connection request: [route: > {}->http://192.168.1.12:7070][total kept alive: 0; route allocated: 0 of > 2; total allocated: 0 of 20] > 18:43:03 PoolingHttpClientConnectionManager - Connection leased: [id: > 0][route: {}->http://192.168.1.12:7070][total kept alive: 0; route > allocated: 1 of 2; total allocated: 1 of 20] > 18:43:03 MainClientExec - Opening connection {}->http://192.168.1.12:7070 > 18:43:03 HttpClientConnectionOperator - Connecting to /192.168.1.12:7070 > 18:43:03 HttpClientConnectionOperator - Connection established > 192.168.0.143:65129<->192.168.1.12:7070 > 18:43:03 MainClientExec - Executing request POST /kylin/api/jobs HTTP/1.1 > 18:43:03 MainClientExec - Proxy auth state: UNCHALLENGED > 18:43:03 LoggingManagedHttpClientConnection - http-outgoing-0 >> POST > /kylin/api/jobs HTTP/1.1 > 18:43:03 LoggingManagedHttpClientConnection - http-outgoing-0 >> > Content-Type: application/json > 18:43:03 LoggingManagedHttpClientConnection - http-outgoing-0 >> > Authorization: Basic QURNSU46S1lMSU4= > 18:43:03 LoggingManagedHttpClientConnection - http-outgoing-0 >> > Content-Length: 0 > 18:43:03 LoggingManagedHttpClientConnection - http-outgoing-0 >> Host: > 192.168.1.12:7070 > 18:43:03 LoggingManagedHttpClientConnection - http-outgoing-0 >> > Connection: Keep-Alive > 18:43:03 LoggingManagedHttpClientConnection - http-outgoing-0 >> > User-Agent: Apache-HttpClient/4.3.3 (java 1.5) > 18:43:03 LoggingManagedHttpClientConnection - http-outgoing-0 >> > Accept-Encoding: gzip,deflate > 18:43:03 Wire - http-outgoing-0 >> "POST /kylin/api/jobs HTTP/1.1[\r][\n]" > 18:43:03 Wire - http-outgoing-0 >> "Content-Type: > application/json[\r][\n]" > 18:43:03 Wire - http-outgoing-0 >> "Authorization: Basic > QURNSU46S1lMSU4=[\r][\n]" > 18:43:03 Wire - http-outgoing-0 >> "Content-Length: 0[\r][\n]" > 18:43:03 Wire - http-outgoing-0 >> "Host: 192.168.1.12:7070[\r][\n]" > 18:43:03 Wire - http-outgoing-0 >> "Connection: Keep-Alive[\r][\n]" > 18:43:03 Wire - http-outgoing-0 >> "User-Agent: Apache-HttpClient/4.3.3 > (java 1.5)[\r][\n]" > 18:43:03 Wire - http-outgoing-0 >> "Accept-Encoding: gzip,deflate[\r][\n]" > 18:43:03 Wire - http-outgoing-0 >> "[\r][\n]" > 18:43:03 Wire - http-outgoing-0 << "HTTP/1.1 405 Method Not > Allowed[\r][\n]" > 18:43:03 Wire - http-outgoing-0 << "Server: Apache-Coyote/1.1[\r][\n]" > 18:43:03 Wire - http-outgoing-0 << "Set-Cookie: > JSESSIONID=1B48E4EE1F327464EA6B32449346BBB7; Path=/kylin/; HttpOnly[\r][\n]" > 18:43:03 Wire - http-outgoing-0 << "Allow: GET[\r][\n]" > 18:43:03 Wire - http-outgoing-0 << "Content-Type: > text/html;charset=utf-8[\r][\n]" > 18:43:03 Wire - http-outgoing-0 << "Content-Language: en[\r][\n]" > 18:43:03 Wire - http-outgoing-0 << "Content-Length: 1047[\r][\n]" > 18:43:03 Wire - http-outgoing-0 << "Date: Fri, 08 Jan 2016 10:41:50 > GMT[\r][\n]" > 18:43:03 Wire - http-outgoing-0 << "[\r][\n]" > 18:43:03 Wire - http-outgoing-0 << "<html><head><title>Apache > Tomcat/7.0.59 - Error report</title><style><!--H1 > {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:22px;} > H2 > {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:16px;} > H3 > {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:14px;} > BODY > {font-family:Tahoma,Arial,sans-serif;color:black;background-color:white;} B > {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;} > P > {font-family:Tahoma,Arial,sans-serif;background:white;color:black;font-size:12px;}A > {color : black;}A.name {color : black;}HR {color : #525D76;}--></style> > </head><body><h1>HTTP Status 405 - Request method 'POST' not > supported</h1><HR size="1" noshade="noshade"><p><b>type</b> Status > report</p><p><b>message</b> <u>Request method 'POST' not > supported</u></p><p><b>description</b> <u>The specified HTTP method is not > allowed for the requested resource.</u></p><HR size="1" > noshade="noshade"><h3>Apache Tomcat/7.0.59</h3></body></html>" > 18:43:03 LoggingManagedHttpClientConnection - http-outgoing-0 << HTTP/1.1 > 405 Method Not Allowed > 18:43:03 LoggingManagedHttpClientConnection - http-outgoing-0 << Server: > Apache-Coyote/1.1 > 18:43:03 LoggingManagedHttpClientConnection - http-outgoing-0 << > Set-Cookie: JSESSIONID=1B48E4EE1F327464EA6B32449346BBB7; Path=/kylin/; > HttpOnly > 18:43:03 LoggingManagedHttpClientConnection - http-outgoing-0 << Allow: > GET > 18:43:03 LoggingManagedHttpClientConnection - http-outgoing-0 << > Content-Type: text/html;charset=utf-8 > 18:43:03 LoggingManagedHttpClientConnection - http-outgoing-0 << > Content-Language: en > 18:43:03 LoggingManagedHttpClientConnection - http-outgoing-0 << > Content-Length: 1047 > 18:43:03 LoggingManagedHttpClientConnection - http-outgoing-0 << Date: > Fri, 08 Jan 2016 10:41:50 GMT > 18:43:03 MainClientExec - Connection can be kept alive indefinitely > 18:43:03 ResponseProcessCookies - Cookie accepted > [JSESSIONID="1B48E4EE1F327464EA6B32449346BBB7", version:0, > domain:192.168.1.12, path:/kylin/, expiry:null] > response.getStatusLine().getStatusCode():405 > java.lang.RuntimeException: Failed : HTTP error code : 40518:43:03 > ConnectionHolder - Cancelling request execution > 18:43:03 LoggingManagedHttpClientConnection - http-outgoing-0: Shutdown > connection > > at > com.britecloud.spark.jobs.KylinJobUtils.listAllJobs(KylinJobUtils.java:63) > at > com.britecloud.spark.jobs.KylinJobUtils.main(KylinJobUtils.java:89) > 18:43:03 ConnectionHolder - Connection discarded > 18:43:03 LoggingManagedHttpClientConnection - http-outgoing-0: Close > connection > 18:43:03 PoolingHttpClientConnectionManager - Connection released: [id: > 0][route: {}->http://192.168.1.12:7070][total kept alive: 0; route > allocated: 0 of 2; total allocated: 0 of 20] > > > > > > > > > > > > > > > ------------------ Original ------------------ > From: "yu feng"<olaptes...@gmail.com>; > Date: Fri, Jan 8, 2016 06:12 PM > To: "dev"<dev@kylin.apache.org>; > > Subject: Re: restful interface > > > You can add authentication infomation like this : > > protected void addHttpHeaders(HttpMethodBase method) { > method.addRequestHeader("Accept", "application/json, text/plain, > */*"); > method.addRequestHeader("Content-Type", "application/json"); > > String basicAuth = > DatatypeConverter.printBase64Binary((this.username + ":" + > this.password).getBytes()); > method.addRequestHeader("Authorization", "Basic " + basicAuth); > } > > In curl command, you can execute command like this : curl -H > "Authorization:Basic auth-information-content" -H "Content-Type: > application/json" "http://localhost:7070/kylin/api/xxx", and > auth-information-content > is value of username + ":" + password encoding with base64. for example > "ADMIN:KYLIN" will encode to "QURNSU46S1lMSU4=" > > 2016-01-08 17:37 GMT+08:00 王琳 <wang...@britecloudtech.com>: > > > hi > > I have a restful interface problems need to consult about: > > > > Java call restful interface for user authentication how to control > > this piece? > > > > > > Thanks >