2013-08-13 17 views
7

Tôi đang sử dụng Ứng dụng khách Retrofit của Square để thực hiện các yêu cầu đơn giản từ Ứng dụng Android. Giống như vậy:Square Retrofit Client: Làm thế nào để bật/tắt tính năng followRedirects? Cách chặn URL chuyển hướng?

RestAdapter restAdapter = new RestAdapter.Builder() 
      .setServer(Configurations.getInstance().plistMap.get("PTBaseURL")) 
      .setRequestHeaders(new RequestHeaders() { 
       @Override 
       public List<Header> get() { 
        List<Header> headers = new ArrayList<Header>(); 
         Header authHeader = new Header("Authorization", authType + " " + UserManager.getInstance().currentUser.token); 
         headers.add(authHeader); 
        } 
        return headers; 
       } 
      }) 
      .build(); 

    this.service = restAdapter.create(ClientInterface.class); 

Một điểm cuối chuyển hướng đến một URL khác (s3). Vì một lý do không quan trọng đối với câu hỏi này, yêu cầu chuyển hướng không thành công và do đó phương thức callback.failure(error) của tôi đang được gọi. Tôi cần có thể truy cập và sửa đổi URL chuyển hướng hoặc yêu cầu tại một số thời điểm, thích hợp hơn trong callback.failure(). Tôi có thể làm cái này như thế nào?

Ngoài ra, có cách nào để đặt một cái gì đó như followRedirects = false (và chặn chuyển hướng theo cách này) không?

Trả lời

5

Với OkHttp:

public static void setFollowRedirects (boolean auto) 
public OkHttpClient setFollowProtocolRedirects(boolean followProtocolRedirects) 

Với HttpURLConnection:

public static void setFollowRedirects (boolean auto) 
public void setInstanceFollowRedirects (boolean followRedirects) 

Xem thảo luận here.

Các vấn đề liên quan