我有
的GET api http://xxxxx/Status?taxYear=2017
响应= “IsValid”:true
但是Retrofit Query正在将URL转换为
http://xxxxx/Status?taxYear\u003d2017
响应= “IsValid”:false
这会导致错误的API响应。我尝试了Querymap和所有,帮帮我。
答案 0 :(得分:0)
不要在Retrofit端点中使用查询。您必须使用像这样的查询注释......
methodName(@Query(encoded = true, value = "taxYear") String filter)
也许"编码"参数可以是false或删除(false是默认值)。
答案 1 :(得分:0)
您还可以在网址中指定查询参数。
@GET("xxxxx/Status?taxYear=2017")
Call<ResponseBody> methodName();
或其他方式是:
@GET("xxxxx/Status?taxYear={year}")
Call<ResponseBody> methodName(@Path("year") String year);
答案 2 :(得分:0)
定义基本网址,如
@GET("Status")
Call<YourModelClass> yourRequestMethodName(@Query("taxYear") String yourYear);
如果你定义一个调用请求的接口而不是试试这个
Call<YourModelClass> call = yourRetrofitClientName.yourRequestMethodName("2017");
call.enqueue(new Callback<YourModelClass>() {
@Override
public void onResponse(Call<YourModelClass> call, Response<YourModelClass> response) {
//Handle your response here
}
@Override
public void onFailure(Call<YourModelClass> call, Throwable t) {
//Handle your error here
}
});
调用上面的定义方法,如
<sessionState cookieless="false" timeout="30" mode="InProc"/>
<authentication mode="Forms">
<forms name="AppRootForms" loginUrl="LoginPage.aspx" protection="All" timeout="30" path="/" slidingExpiration="true"/>
</authentication>
<system.webServer>
<!--<max limit for storing session />-->
<asp>
<session allowSessionState="true" max="100000" timeout="00:30:00" />
</asp>
</system.webServer>