特殊字符在我目前的項目中,我對「和‘=一些問題’符號的URL。改造與URL
http://mysampledomain.com/login?q=‘用戶登陸’=」樣品」
我已經嘗試了一切。 「@Path」不起作用,當我嘗試「@Query」時,字符「=」和「」「被更改爲ASCII,並且不起作用。
http://mysampledomain.com/login?q%3D%userlogin%27=%22sample%22
我怎麼能做出這樣的請求?
謝謝!
特殊字符在我目前的項目中,我對「和‘=一些問題’符號的URL。改造與URL
http://mysampledomain.com/login?q=‘用戶登陸’=」樣品」
我已經嘗試了一切。 「@Path」不起作用,當我嘗試「@Query」時,字符「=」和「」「被更改爲ASCII,並且不起作用。
http://mysampledomain.com/login?q%3D%userlogin%27=%22sample%22
我怎麼能做出這樣的請求?
謝謝!
我找到了解決辦法。
的人,它可以幫助,我已經使用了@url註釋是這樣的:
@GET
Call<ApiResponseModel> getUserDetails(@Header("Authorization") String token, @Url String fullUrl);
感謝所有有回答我的問題:)人
正常情況下,通過url的參數以不同的方式傳遞。在你的情況將是:
http://mysampledomain.com/login?userlogin=sample&otherVariable=otherValue
沒有'通常字符。
比如我用的node.js所以這將是這樣的:
app.get('/login', function(req, res) {
var userLogin = req.query.userLogin;
var otherVariable = req.query.otherVariable;
// Do whatever you want.
});
是的,我知道幾乎所有的服務都不適用於這種模式,但我必須使我的應用程序適用於這類服務。 :( – asanchezyu
如果檢查API URL您的API像
http://mysampledomain.com/login?userlogin=sample&otherVariable=otherValue
然後
@GET("login")
Observable<LoginResponse> getUserProductViewed(@Query("userlogin") String userlogin,@Query("otherVariable")String otherVariable);
和基本URL如:
public static String BASE_URL = "http://mysampledomain.com/";
問題是,URL需要像這樣的報價和等號: http://mysampledomain.com/login?q='userlogin'="sample「 我的API需要這種模式,我不能去解決吧。 – asanchezyu
可能是那個api的URL錯了 –
使用這種方法
public static final String BASE_URL + "http://mysampledomain.com/";
public interface RetrofitClient{
@GET("login")
Call<String> login(@QueryMap Map<String, String> map);
}
調用這個
Map<String, String> map = new HashMap<>();
map.put("userlogin", "sample");
map.put("param2", "param2");
OkHttpClient.Builder okBuilder = new OkHttpClient.Builder();
Gson gson = new GsonBuilder()
.setLenient()
.create();
Retrofit r = new Retrofit.Builder()
.baseUrl(BASE_URL)
.addConverterFactory(ScalarsConverterFactory.create())
.addConverterFactory(GsonConverterFactory.create(gson))
.client(okBuilder.build())
.build();
r.create(RetrofitClient.class).login(map).enqueue(this);
有一些約定,你應該尊重。您最終的網址應該採用以下格式:'http://mysampledomain.com/login?userlogin = sample&param2 = value2'(您可以根據需要添加或刪除參數) – MatPag
您想通過Retrofit進行GET請求嗎? –
是的,我知道,但後端是以這種方式開發的,不能改變。有什麼方法可以對這些服務進行改造嗎? – asanchezyu