使用基本身份验证在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我也会经历同样的过程。