gpt4 book ai didi

java - 使用基本身份验证在 Java 中获取和发布 API 调用

转载 作者:行者123 更新时间:2023-12-05 02:52:29 25 4
gpt4 key购买 nike

我想在 java 中调用 GETPOST API,而不使用任何 framework。我需要使用基本身份验证。谁能帮我提供一些教程链接。在 google 中,我只在 spring 框架中找到代码,但我没有使用 Spring。我正在寻找使用基本身份验证调用 API 的代码。

我必须在下面的 code 中添加带有 authentication 的新 url。如果 API 使用 basic auth 进行保护并且是 POST 方法,则需要进行哪些修改。我是 java 的新手,所以不太了解。

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.Proxy;
import java.net.URL;
import java.net.URLConnection;

public class NetClientGet {

public static void main(String[] args) {

try
{
System.out.println("Inside the main function");
URL weburl=new URL("http://dummy.restapiexample.com/api/v1/employees");
HttpURLConnection conn = (HttpURLConnection) weburl.openConnection();
conn.setRequestMethod("GET");
conn.setRequestProperty("Accept", "application/json");
System.out.println("Output is: "+conn.getResponseCode());
System.out.println("Output is: ");
System.setProperty("http.proxyHost", null);
//conn.setConnectTimeout(60000);
if(conn.getResponseCode()!=200)
{
System.out.println(conn.getResponseCode());
throw new RuntimeException("Failed : HTTP Error Code: "+conn.getResponseCode());
}
System.out.println("After the 2 call ");
InputStreamReader in=new InputStreamReader(conn.getInputStream());
BufferedReader br =new BufferedReader(in);
String output;
while((output=br.readLine())!=null)
{
System.out.println(output);
}
conn.disconnect();

}
catch(Exception e)
{
System.out.println(e.getMessage());
}

}
}

最佳答案

基本认证

请参阅 RFC#2617 第 2 节:Basic Authentication Scheme

Authentication header 添加到请求中。这是一个例子:

String username = "john";
String password = "pass";
// ...
URL weburl=new URL("http://dummy.restapiexample.com/api/v1/employees");
HttpURLConnection conn = (HttpURLConnection) weburl.openConnection();
conn.setRequestMethod("GET");
conn.setRequestProperty("Accept", "application/json");
// snippet begins
conn.setRequestProperty("Authorization",
"Basic " + Base64.getEncoder().encodeToString(
(username + ":" + password).getBytes()
)
);
// snippet ends
System.out.println("Output is: "+conn.getResponseCode());

POST 方法

参见 this answer有关将 POST 方法与 HttpURLConnection 结合使用的更多信息。

关于java - 使用基本身份验证在 Java 中获取和发布 API 调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62564502/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com