我是Retrofit的新手。我怎样才能发送param并从下面的url中获取Json?
http://xxx:8087/courier.svc/login?username=jim&password=123456
我需要一个指导链接。
此代码位于我的MainActivity
:
private void loadJSON(String username, String password) {
Retrofit retrofit = new Retrofit.Builder()
.baseUrl("http://192.168.8.11:8087/sample.svc/")
.addConverterFactory(GsonConverterFactory.create())
.build();
RequestInterface_Login request = retrofit.create(RequestInterface_Login.class);
Call<JSONResponseLogin> call = request.getJSON(username, password);
call.enqueue(new Callback<JSONResponseLogin>() {
@Override
public void onResponse(Call<JSONResponseLogin> call, Response<JSONResponseLogin> response) {
JSONResponseLogin jsonResponse = response.body();
data = new ArrayList<>(Arrays.asList(jsonResponse.getLogin()));
}
@Override
public void onFailure(Call<JSONResponseLogin> call, Throwable t) {
Log.d("Error", t.getMessage());
}
});
}
我的ModelLogin
:
public class ModelLogin {
private String username;
private String password;
public String getUsername() {
return username;
}
public String getPassword() {
return password;
}
}
我的RequestInterface_Login
:
public interface RequestInterface_Login {
@GET("/login/{username}/{password}")
Call<JSONResponseLogin> getJSON(@Path("username") String username, @Path("password") String password);
}
我的JSONResponseLogin
:
public class JSONResponseLogin {
private ModelLogin[] login;
public ModelLogin[] getLogin() {
return login;
}
}
但请告诉我NullPointerException
!
我从服务中得到json
:
{"Key":null,"Response":1}
答案 0 :(得分:2)
在您打电话进行改造之前,您只需打印URL,然后就可以在浏览器中加载URL并查看即将发生的响应,您可以在call.enqueue(new Callback<JSONResponseLogin>()
之前按照下面的行添加日志
Log.e(TAG, "API URL: " + call.request().url());
检查您的回复 让我知道我会帮助你...因为我在我的3个项目中使用改造
在界面
中这样做 @GET("/courier.svc/login?)
Call<JSONResponseLogin> getJSON(@Query("username") String username,
@Query("password") String password);
并将其从基座.baseUrl("http://192.168.8.11:8087")
答案 1 :(得分:0)
我正在撰写这篇文章,并在“机器人”中进行改造。使用我们最新的Retrofit库,此插件可用于将Retrofit集成到您的项目中。 在使用reftrofit之前,我们只需要按照一些步骤在Android studio中添加QAssist插件,这将减少您在Webservices集成方面的工作。
1.在Android工作室中添加(QAssist - Android Studio插件)Android插件。 (https://github.com/sakkeerhussain/QAssist)。: -
2.当我们完成插件后,我们需要重启我们的Android工作室。
3.检查您的Android工作室菜单栏您可以找到&#34; QAssist&#34;。
4.点击它并开始使用Retrofit Integrate。
5.现在我们需要: - Web Api的BaseUrl - 所有Api的积分。 - 样本请求和所有请求的响应。 - 完成这些步骤后,您的改造(QAssist / retrofit包在Project中生成)。
6.您可以在该软件包中找到A类和一个接口。
7.界面包含所有端点详细信息,Class将包含Retrofit连接详细信息。
8.我们只需要添加一个小代码来访问Api和Parse即Api&#39;响应数据模型。 9.使用此示例函数调用Api。
private void demoRetroFitCall() {
APIService apiService = RetrofitManager.getInstance(this);
//APIService apiService = RetroFitApiClient.getClient().create(APIService.class);
Call<ModelData> call = apiService.TestGet();
call.enqueue(new Callback<ModelData>() {
@Override
public void onResponse(Call<ModelData> call, Response<ModelData> response) {
Log.d("TAG", "Data recived in response.body");
}
@Override
public void onFailure(Call<ModelData> call, Throwable t) {
Log.e("TAG", t.toString());
}
});
}
56 - voda