1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > java简单调用api接口(调用api接口时会自动跳转到登录页面的解决方法)

java简单调用api接口(调用api接口时会自动跳转到登录页面的解决方法)

时间:2018-09-12 10:05:34

相关推荐

java简单调用api接口(调用api接口时会自动跳转到登录页面的解决方法)

java实现RestApi接口的调用,解决调用权限

本人在研究apache atlas时参考官方api文档进行api接口调用时遇到一个问题:浏览器调用接口会自动跳转到atlas的登录页面,如果不登录没办法调用api:

经过学习了解,可以在调用接口的时候在请求头设置一个key,这个key包含登录的账号和密码,具体方法如下:

private static String getAuthorization() {BASE64Encoder encoder = new BASE64Encoder();String auth = username + ":" + password;String base64 = encoder.encode(auth.getBytes());return "Basic " + base64;}

其中,username和password是登录的账号和密码,BASE64Encoder 需要导入sun.misc.BASE64Decoder.jar,请自行下载导入,然后在请求头设置:

URL serverUrl = new URL(url);HttpURLConnection connection = (HttpURLConnection) serverUrl.openConnection();connection.setRequestMethod("GET");connection.setRequestProperty("Authorization", getAuthorization());

这样就能调用api解决权限问题,完整的java代码如下:

package api_test;import java.io.BufferedReader;import java.io.InputStreamReader;import .HttpURLConnection;import .URL;import Decoder.BASE64Encoder;/*** @Author:* @Date: /1/9 11:12*/public class HttpClientTest {private static String getAuthorization() {BASE64Encoder encoder = new BASE64Encoder();String auth = "admin" + ":" + "admin";String base64 = encoder.encode(auth.getBytes());return "Basic " + base64;}public static void main(String[] args) throws Exception {String url="http://192.168.3.64:21000/api/atlas/v2/lineage/6fa88134-ab3e-4db9-8907-947e4fc17b88";URL serverUrl = new URL(url);HttpURLConnection connection = (HttpURLConnection) serverUrl.openConnection();connection.setRequestMethod("GET");connection.setRequestProperty("Authorization", getAuthorization()); if (connection.getResponseCode() != 200) {throw new RuntimeException("HTTP GET Request Failed with Error code : "+ connection.getResponseCode());}BufferedReader responseBuffer = new BufferedReader(new InputStreamReader((connection.getInputStream())));System.out.println("Output from Server: \n");String output;while ((output = responseBuffer.readLine()) != null) {System.out.println(output);}connection.disconnect();}}

以上是通过java实现的,这里提一下postman测试,如图所示,输入用户名和密码 ,再进行测试

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。