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

使用基本身份验证在java中获取和发布API调用,java,jax-rs,jax,Java,Jax Rs,Jax,我想在java中调用GET和POSTAPI,而不使用任何framework。我需要使用基本身份验证。任何人都可以帮我一些教程链接。在谷歌,我只在spring框架中找到了代码,但我没有使用spring。我正在寻找使用基本身份验证调用API的代码。 我必须在下面的code中添加带有authentication的新url。如果API由basic auth保护,并且是POST方法,则需要进行哪些修改。我不熟悉java,所以不太了解 import java.io.BufferedReader; impor

我想在
java
中调用
GET
POST
API,而不使用任何
framework
。我需要使用基本身份验证。任何人都可以帮我一些教程链接。在谷歌,我只在
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第2节:

身份验证
头添加到请求中。下面是一个例子:

String username=“john”;
字符串password=“pass”;
// ...
URL weburl=新URL(“http://dummy.restapiexample.com/api/v1/employees");
HttpURLConnection conn=(HttpURLConnection)weburl.openConnection();
conn.setRequestMethod(“GET”);
conn.setRequestProperty(“接受”、“应用程序/json”);
//片段开始
conn.setRequestProperty(“授权”,
“Basic”+Base64.getEncoder().encodeToString(
(用户名+”:“+密码).getBytes()
)
);
//片段结尾
System.out.println(“输出为:+conn.getResponseCode());
POST方法
有关在HttpURLConnection中使用POST方法的更多信息,请参阅。

您尝试过什么吗?身份验证只是HTTP请求中的一个头字段。我已经添加了相关代码。我能够在没有身份验证的情况下使用API。但我不知道如何使用接受基本身份验证的POST API。我没有使用spring。您已经在设置名为
Accept
的标题。以相同的方式添加
身份验证
标题。看看这里:谢谢你@f1sh我也会经历同样的过程。