在我的代码中,我想发送带有基本身份验证的 post 请求。
这是我的 postman 截图:
这是我的 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/