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

     2023-02-16     136

关键词:

【中文标题】使用基本身份验证在 Java 中获取和发布 API 调用【英文标题】:Get and Post API call in java with basic authentication 【发布时间】:2020-10-15 06:29:28 【问题描述】:

我想在java 中调用GETPOST API,而不使用任何framework。我需要使用基本身份验证。任何人都可以帮我提供一些教程链接。在谷歌中,我只在spring 框架中找到了代码,但我没有使用Spring。我正在寻找使用basic authentication.调用API 的代码

我必须在下面的code 中添加新的urlauthentication。如果APIbasic 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());
        
        
    

【问题讨论】:

你有没有尝试过?该身份验证只是 HTTP 请求中的标头字段。 我已经添加了有问题的代码。我可以在没有身份验证的情况下使用 API。但我不知道如何使用接受基本身份验证的 POST API。我没有使用弹簧。 您已经设置了一个名为 Accept 的标头。以相同的方式添加 Authentication 标头。看这里:***.com/questions/12732422/… 谢谢@f1sh 我也会经历同样的事情。 【参考方案1】:

基本认证

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

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

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 方法

有关在 HttpURLConnection 中使用 POST 方法的更多信息,请参阅 this answer。

【讨论】:

如何从 HTTP 基本身份验证中获取密码

...on【发布时间】:2013-04-0616:50:45【问题描述】:我在Java中使用HTTPBASIC身份验证。我的Servlet发送一条JMS消息,但我需要在创建连接时提供用户和密码来验证自己:javax.jms.ConnectionFactory.createConnection(Stringuse 查看详情

在 Kong 中启用基本身份验证和会话插件时如何获取用户 ID?

...【发布时间】:2021-05-0313:54:51【问题描述】:我目前正在使用KongAPI网关。使用登录并检索会话后。用户名不会转发到后端服务。如何从Kong提供的会话令牌中获取用户名?插件:名称:基本身份验证服务:登录服务配置:h 查看详情

如何在 Flutter 移动应用程序的 API 调用中传递基本身份验证凭据?

...我正在开发一个简单的Flutter移动应用,该应用需要调用使用基本身份验证的API。我可以使用电子邮件和密码凭据在Postman中访问API,它会在执行请求之 查看详情

如何使用 YAML、tavern 和 pytest 使用基本身份验证测试 API

】如何使用YAML、tavern和pytest使用基本身份验证测试API【英文标题】:HowtotestanAPIwiththebasicauthusingYAML,tavernandpytest【发布时间】:2019-08-0501:05:43【问题描述】:我正在实现一个删除API,它需要在删除任何用户之前进行基本身份验证... 查看详情

Rest API 基于令牌的身份验证。基本认证

...icAuth【发布时间】:2017-11-2720:24:40【问题描述】:我已经使用rest_framework实现了基于令牌的身份验证,到目前为止一切正常,但我有一个问题,如果我使用basic-auth在标头中发送用户名和密码,那么为什么我需要发送user-有效载荷... 查看详情

无法将令牌附加到 API 调用(基本身份验证、AFNetworking)

...布时间】:2013-11-0201:23:36【问题描述】:我在我的项目中使用基本身份验证。要获取令牌,我发送一个获取请求,获取令牌对象,将其存储为NSUserDefault,我需要将此令牌附加到我的所有API调用(当然除了登 查看详情

使用 HttpClient 在 Java 中进行 Http 基本身份验证?

】使用HttpClient在Java中进行Http基本身份验证?【英文标题】:HttpBasicAuthenticationinJavausingHttpClient?【发布时间】:2011-03-1800:41:41【问题描述】:我正在尝试在Java中模仿这个curl命令的功能:curl--basic--userusername:password-d""http://ipaddress/... 查看详情

在 Swift 中使用基本身份验证的 POST 请求 + 获取参数 + 发布参数(使用 Alamofire 或 RxSwift 或其他任何东西)

】在Swift中使用基本身份验证的POST请求+获取参数+发布参数(使用Alamofire或RxSwift或其他任何东西)【英文标题】:POSTRequestwithbasicauthinSwift+getparams+postparams(usingAlamofireorRxSwiftoranythingelse)【发布时间】:2016-06-2606:42:45【问题描述】... 查看详情

在 Nodejs 中使用 Google API 进行服务身份验证

】在Nodejs中使用GoogleAPI进行服务身份验证【英文标题】:ServiceAuthenticationwithGoogleAPIsinNodejs【发布时间】:2014-06-0413:40:37【问题描述】:我正在尝试将YouTube数据APIV3与Node一起使用,以尝试提供经过身份验证的代理来进行视频搜索... 查看详情

在 Grails 中支持基本身份验证和基于表单的身份验证

...ils【发布时间】:2012-07-1215:33:25【问题描述】:我需要为使用grails1.3.6的应用程序支持基本身份验证和基于表单的身份验证。是否可以使用SpringSecurity来做到这一点?现在我确实有适用于应用程序的基于表单的身份验证,我还需... 查看详情

如何在 Spring Boot 中使用 RESTful 和基本身份验证

】如何在SpringBoot中使用RESTful和基本身份验证【英文标题】:HowtouseRESTfulwithBasicAuthenticationinSpringBoot【发布时间】:2019-05-2920:28:05【问题描述】:您好,我正在使用带有基本身份验证的RESTful,此代码是RestController的一部分:@GetMapp... 查看详情

如何在 java 中使用 REST API 身份验证? [关闭]

】如何在java中使用RESTAPI身份验证?[关闭]【英文标题】:HowtouseRESTAPIAuthenticationwithjava?[closed]【发布时间】:2021-12-1921:50:37【问题描述】:我的任务是制作用户登录GUI并添加RESTAPI进行身份验证。然后在登录正确时启动主GUI。有人... 查看详情

Firebase 云功能,具有对外部 api 的基本身份验证的获取请求

】Firebase云功能,具有对外部api的基本身份验证的获取请求【英文标题】:Firebasecloudfunctionwithfetchrequestwithbasicauthtoexternalapi【发布时间】:2020-03-0304:22:59【问题描述】:我似乎在从firebase云函数中的fetch调用中获取预期响应时遇到... 查看详情

如何使用 apache 会话和基本身份验证(在 apache2.4 中)?

】如何使用apache会话和基本身份验证(在apache2.4中)?【英文标题】:Howtouseapachesessionalongwithbasicauthentication(inapache2.4)?【发布时间】:2017-03-2902:58:33【问题描述】:我看到大多数使用基于表单的身份验证的示例(即我们加载mod_au... 查看详情

使用发布请求获取身份验证令牌

】使用发布请求获取身份验证令牌【英文标题】:Getauthtokenusingpostrequest【发布时间】:2018-11-1204:44:20【问题描述】:我正在尝试通过向url发出postweb请求来获取请求身份验证令牌。api需要用户名/密码作为form-data有效负载中的凭据... 查看详情

Azure Api 规则不适用于使用具有身份验证基本和身份验证证书的默认助手

】AzureApi规则不适用于使用具有身份验证基本和身份验证证书的默认助手【英文标题】:TheAzureApiRuledoesn´tapplyusingdefaultassistantwithauthentication-basicandauthentication-certificate【发布时间】:2019-08-1514:09:18【问题描述】:我正在添加一个... 查看详情

在 java 中使用 http 标头在 Spring Security 中传递基本身份验证详细信息

】在java中使用http标头在SpringSecurity中传递基本身份验证详细信息【英文标题】:Passingbasicauthenticationdetailsinspringsecurityusinghttpheadersinjava【发布时间】:2013-08-3103:39:14【问题描述】:我正在我的宁静Web服务中实现SpringSecurity。我正... 查看详情

具有基本身份验证的 Exchange Online 和 EWS 停止工作

...edworking【发布时间】:2020-05-2811:27:00【问题描述】:我想使用EWS托管API和基本身份验证连接到ExchangeOnline。但在我的应用程序中,EWSAutodiscoverService在使用基本身份验证时无法从ExchangeOnline检索邮箱设置 查看详情