【问题标题】:How to make a CURL request with retrofit?如何通过改造发出 CURL 请求?
【发布时间】:2015-05-14 03:27:27
【问题描述】:

我正在尝试登录。

请求看起来像这样 $ curl -u "username:PASSWORD" https://urlhere.com

如何使用改造使其工作?

我尝试了一个授权标头,例如 request.addHeader("Authentication", username+":"+password);

有什么帮助吗?

【问题讨论】:

标签: android curl request retrofit


【解决方案1】:

你的问题不够清楚。 我想这是基本的身份验证,你可以使用这样的东西

@FormUrlEncoded
@POST("/login") void login(
        @Header("Authorization") String authorization,
        Callback<?> callback
);



// later when you call it

public static String getBase64String(String value) throws UnsupportedEncodingException {
    return Base64.encodeToString(value.getBytes("UTF-8"), Base64.NO_WRAP);
}

final String auth = "Basic " + getBase64String("user:password");
apiClient.login(auth, callback);

我希望这会有所帮助。 :)

【讨论】:

    【解决方案2】:
    1. 如果您需要仅对单独的休息请求使用授权,您可以通过@Header 进行授权。可以使用@Header 注解动态更新请求标头。

      @FormUrlEncoded
      @GET("/user")
      void getUser(@Header("Authorization") 
      String authorization, Callback<User> callback);
      

      在哪里

      String authorization = "Basic " + getBase64String("user:password");
      

      例如,它将字符串:Basic b2QGdyb3Vwb24ucnU6aWxvdmVteW1hbWE=

      public static String getBase64String(String value) 抛出 UnsupportedEncodingException { 返回 Base64.encodeToString(value.getBytes("UTF-8"), Base64.NO_WRAP); }

    2. 如果您需要对所有休息请求使用授权,您可以通过Retrofit Interceptor 添加@Header:

      new RestAdapter.Builder().
          setClient(...).
          setEndpoint(...).
          setErrorHandler(...).
          setRequestInterceptor(new RequestInterceptor() {
          @Override
          public void intercept(RequestFacade request) {
                 request.addHeader("Content-Type", "application/json");
                 request.addHeader("Authorization", authorization);
                 }
          }).
          build();
      

    【讨论】:

      猜你喜欢
      • 2021-05-19
      • 2016-09-11
      • 2020-01-13
      • 2015-03-02
      • 2018-08-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多