android - 如何在改造中发送带有基本身份验证的帖子请求?

标签 android header retrofit basic-authentication

在我的代码中,我想发送带有基本身份验证的 post 请求。

这是我的 postman 截图:

enter image description here

这是我的 apiInterface 类

@FormUrlEncoded
    @POST("GetBarcodeDetail")
    Call<PreliminaryGoodsAcceptResponse> PRELIMINARY_GOODS_ACCEPT_RESPONSE_CALL(@Field("ProcName") String procName, @Field("Barcode") String barcode, @Field("LangCode") String langCode);

这是我的apiclient

public class ApiClient {

    public static final String BASE_URL = "http://192.**********";
    private static Retrofit retrofit = null;
    private static OkHttpClient sClient;

    public static Retrofit getClient() {
        if(sClient == null) {
            HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor();
            interceptor.setLevel(HttpLoggingInterceptor.Level.BODY);
            sClient = new OkHttpClient.Builder()
                    .addInterceptor(new HttpLoggingInterceptor(HttpLoggingInterceptor.Logger.DEFAULT))
                    .addInterceptor(interceptor)
                    .build();
        }

        if (retrofit==null) {
            retrofit = new Retrofit.Builder()
                    .baseUrl(BASE_URL)
                    .addConverterFactory(GsonConverterFactory.create())
                    .client(sClient)
                    .build();
        }
        return retrofit;
    }

}

我的问题是如何使用 header 发送发布请求:

Header Username : EBA Token :
34242353453456563DSFS

最佳答案

这是迄今为止我为“基本身份验证”尝试过的最简单的方法。

使用下面的代码生成授权 header (API/Repository 类)

 var basic = Credentials.basic("YOUR_USERNAME", "YOUR_PASSWORD")

将其作为 header 传递给网络服务调用(API/存储库类)

 var retrofitCall = myWebservice.getNewsFeed(basic)

添加基础header作为参数(Retrofit Webservice接口(interface)类)

 @GET("newsfeed/daily")
 fun getNewsFeed(@Header("Authorization") h1:String):Call<NewsFeedResponse>

抱歉,我的代码是用 Kotlin 编写的,但可以很容易地转换为 Java。

引用文献:https://mobikul.com/basic-authentication-retrofit-android/

关于android - 如何在改造中发送带有基本身份验证的帖子请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50509746/

相关文章:

android - 操作栏兼容显示图标

java - 我必须为android创建谷歌地图,但我目前拥有的代码是在.net中开发的java脚本中

java - Android HttpUrlConnection 传递 header 参数

android - Rxjava2 with Retrofit 获取单个和所有数据

java - 我如何在 Retrofit2 中使用 jsonapi?

java - fragment 中函数的不可访问语句

android - 具有水平 GridLayoutManager 的 RecyclerView 将其高度调整到最大行

php - 没有服务器访问权限的 JQuery 的 GZip 压缩

PHP Header Content-Disposition : attachment forces . php 文件或内联

android - 如何在 MaterialViewPager 中使用服务器数据?