我使用改装我的网络层,我面临着一个奇怪的问题,我有参数,它的值这个样子的如何避免在改造
商店网址编码:// 0TxIGQMQbObzvU4Apia0V0 &回调=
和编码后其变为这个
商店:// 0TxIGQMQbObzvU4Apia0V0%26callback%3D
由于某种原因,服务器不喜欢这种编码,我得到“HTTP 400错误请求”。
如果我没有编码打它运行良好,所以我想知道是否有任何方法我可以禁用endoing。
我试过其他方式这样
@Query(value "env" encoded = false) String env
,但没有运气。
这是我的网络接口类
public interface NetworkService
{
@GET("v1/public/yql")
Observable<SeriesEntity> getOnGoingSeries(@Query("q") String query,
@Query("format") String format,
@Query("diagnostics") boolean flag,
@Query("env") String env);
class Factory {
public static NetworkService create()
{
OkHttpClient.Builder clientBuilder = new OkHttpClient.Builder();
HttpLoggingInterceptor loggingInterceptor = new HttpLoggingInterceptor();
loggingInterceptor.setLevel(HttpLoggingInterceptor.Level.BODY);
clientBuilder.addInterceptor(loggingInterceptor);
Gson gson = new GsonBuilder().disableHtmlEscaping().create();
Retrofit retrofit = new Retrofit.Builder()
.baseUrl("https://query.yahooapis.com")
.client(clientBuilder.build())
.addConverterFactory(GsonConverterFactory.create())
.addCallAdapterFactory(RxJava2CallAdapterFactory.create())
.build();
return retrofit.create(NetworkService.class);
}
}
}
编辑:
我也注意到这个问题仅仅是“&”,因为如果我取代它的值(whic是%的编码值26)它工作正常
你能告诉你的更新接口,你怎么实例化它,什么完整的URL应该是 –
@ JohnO'Reilly我已经添加了接口请检查 – user2934930