公司项目需要接入香港天文台的天气xml,API是http://xml.weather.gov.hk/V2/

需要账号密码,机场那边提供过来之后,发现app内请求会报401,Authorization Required错误。

话不多说,直接上代码:

OkHttpClient.Builder client = new OkHttpClient.Builder();client.authenticator(new Authenticator() {    @Override    public Request authenticate(Route route, okhttp3.Response response) throws IOException {        if (responseCount(response) >= 3) {            return null;         }        String credential = Credentials.basic("userName", "passWord");        return response.request().newBuilder().header("Authorization", credential).build();    }});
   
Request request = new Request.Builder().get().url(url).build();
client.build().newCall(request).enqueue(new okhttp3.Callback() {            @Override            public void onFailure(okhttp3.Call call, IOException e) {            }            @Override            public void onResponse(okhttp3.Call call, okhttp3.Response response) {     if (response.isSuccessful())//                  LogUtils.error(TAG, "Successful");                            }        });

private int responseCount(okhttp3.Response response) {    int result = 1;    while ((response = response.priorResponse()) != null) {        result++;    }    return result;}

参考资料:

https://square.github.io/okhttp/2.x/okhttp/com/squareup/okhttp/Authenticator.html


更多相关文章

  1. Android(安卓)Studio 启动安卓模拟器时,报VT-x is disabled in BI
  2. Android高低API版本兼容之@TargetApi
  3. mac adb配置 及zsh 配置
  4. Android开发之自定义Notification(源代码分享)
  5. android https 连接建立
  6. Android获得相机的所有信息
  7. SharePreference封装使用
  8. android中fragment在后台回收时的生命周期
  9. Android蓝牙

随机推荐

  1. EPSON Printer 打印机 Sdk For Android
  2. 构建 Android(安卓)手机 RSS 阅读器
  3. Android JNI开发入门之一
  4. Android GWES
  5. Android调用Java端,Android于Java后台交互
  6. 访问android平台的通话记录CallLog
  7. android之调用webservice实现图片上传
  8. Android笔记之adb命令应用实例1(手机端与
  9. android中使用sqlite、复制assets下的数
  10. android +ubuntu9.10+eclipse-java-galil