2017-08-10 56 views
0

我想在我的Android應用程序中使用翻新2.3。如何使用兩個'?'來使用URL在改造

我有以下URL格式:

www.test.com/api?url=a?response=json。

這個URL如何被傳送到QueryParam?對於第一部分www.test.com/api將是我的基本URL,然後@Query("url")價值,但如何處理後responsetype=json'?'

+2

我想格式是:www.test.com/api?url=a&response=json –

+0

如果它不是像@NguyễnTrungHiếu說的那麼'a?response = json'是'url'的值,應該是urlEncoded?如果服務器端期望這個值,他們做了其他解析?!這是一個非常小的可能性,大部分就像NguyễnTrungHiếu所說的那樣。 – Yazan

+0

www.test.com/api?url=a&response=json不是格式。網址有'?'代替 '&' –

回答

0

它應該有可能還添加爲查詢參數

如:

Call<TestSiteResult> getTestSiteInfo(@Query("url") String yourUrl, @Query("response") String responseType) 

如果需要此響應參數,您總是可以考慮使用OkHttpClient作爲HTTP連接(您可以簡單地使用Retrofit.Builder的客戶端(OkHttpClient)方法添加它),它負責攔截URL並追加一個某些參數給你的網址(例如,我用過s截取api鍵)。

一個LoggingInterceptor看起來是這樣的:

public class TestLoggingInterceptor implements Interceptor { 

    @Override 
    public Response intercept(Chain chain) throws IOException { 
    Request original = chain.request(); 
    HttpUrl originalHttpUrl = original.url(); 

    HttpUrl url = originalHttpUrl.newBuilder() 
     .addQueryParameter("response", "json") 
     .build(); 

    Request.Builder requestBuilder = original.newBuilder(); 
     .url(url); 

    Request request = requestBuilder.build; 
    return chain.proceed(request); 
    } 
} 

我希望這可以幫助你。