Я новичок в дооснащении. Как я могу отправить параметр и получить Json из приведенного ниже URL-адреса?
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());
}
});
}
My ModelLogin :
public class ModelLogin {
private String username;
private String password;
public String getUsername() {
return username;
}
public String getPassword() {
return password;
}
}
My RequestInterface_Login :
public interface RequestInterface_Login {
@GET("/login/{username}/{password}")
Call<JSONResponseLogin> getJSON(@Path("username") String username, @Path("password") String password);
}
My JSONResponseLogin :
public class JSONResponseLogin {
private ModelLogin[] login;
public ModelLogin[] getLogin() {
return login;
}
}
Но поймай меня NullPointerException!

Я получаю json от службы ниже:
{"Key":null,"Response":1}
Ответ 1 · рейтинг 2 · Rajesh Gauswami
Прежде чем вы вызовете модификацию, вы можете просто распечатать 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")
Ответ 2 · A-Droid Tech
Я пишу этот пост о "Модернизации в Android", используя нашу последнюю библиотеку Retrofit. Этот плагин можно использовать для интеграции модернизации в ваш проект. Прежде чем использовать reftrofit, нам просто нужно выполнить несколько шагов, чтобы добавить плагины QAssist в Android Studio, что уменьшит ваши усилия по интеграции веб-сервисов.
1. Добавьте (QAssist - Android Studio Plugin) Android-плагин в вашу Android-студию. ( https://github.com/sakkeerhussain/QAssist).:-
2. Когда мы закончим с плагином, нам нужно перезапустить нашу Android-студию.
3. Проверьте панель меню Android Studio. Вы можете найти "QAssist".
4.Нажмите на это и начните с модернизации интеграции.
5. Теперь нам нужно: - BaseUrl веб-API - все точки доступа API. - Образец запроса и ответ на все запросы. - После выполнения этих шагов ваш reftrofit (пакет QAssist/retrofit генерируется внутри проекта).
6. Вы можете найти класс и один интерфейс внутри этого пакета.
7. Интерфейс содержит все сведения о конечных точках, а класс будет содержать сведения о модифицированном соединении.
8. Нам просто нужно добавить небольшой код для доступа и API и анализа ответа API на модель данных. 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