Столкнулся с проблемой POST запроса, когда сервер посылает 1 строку:
Принимает:
{ nameAnt:"...", pass:"..." }
А отвечает:
{"result":"NOT QUERY"}
Пытаюсь вывести, в лог ответ, но не получается. Вот мой код:
ConrollerPost.Java:
package dev.busboozted;
import android.widget.Toast;
import java.util.List;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.JsonObject;
import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;
import retrofit2.Retrofit;
import retrofit2.converter.gson.GsonConverterFactory;
public class ControllerPost implements Callback<RegistrationResponse> {
static final String BASE_URL = "http://busboosted.000webhostapp.com/";
public void start(String login, String password) {
Gson gson = new GsonBuilder()
.setLenient()
.create();
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(BASE_URL)
.addConverterFactory(GsonConverterFactory.create(gson))
.build();
Api gerritAPI = retrofit.create(Api.class);
RegistrationBody reg = new RegistrationBody(login, password);
Call<RegistrationResponse> call = gerritAPI.getResult(reg);
call.enqueue(this);
}
@Override
public void onResponse(Call<RegistrationResponse> call,
Response<RegistrationResponse> response) {
RegistrationResponse res = response.body();
System.out.println(res.result);
System.out.println("sdasdasdsadsad");
}
@Override
public void onFailure(Call<RegistrationResponse> call, Throwable t) {
}
}
Действие на нажатие кнопки:
View.OnClickListener oclLoginIp = new View.OnClickListener() {
@Override
public void onClick(View v) {
ControllerPost controllet = new ControllerPost();
controllet.start("debil", "qwerty");
}
};
И интерфейс:
package dev.busboozted;
import java.util.List;
import retrofit2.Call;
import retrofit2.http.Body;
import retrofit2.http.Field;
import retrofit2.http.FormUrlEncoded;
import retrofit2.http.GET;
import retrofit2.http.POST;
import retrofit2.http.Path;
import retrofit2.http.Query;
public interface Api {
@POST("entranceAnt.php")
public Call<RegistrationResponse> getResult(@Body RegistrationBody reg);
}
RegistrationResponse.Java:
package dev.busboozted;
import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;
public class RegistrationResponse {
@SerializedName("result")
public String result;
public String getResult() {
return result;
}
public void setResult() { this.result = result;}
}
RegistrationBody.Java package dev.busboozted;
public class RegistrationBody {
public String login;
public String password;
public RegistrationBody(String login, String password)
{
this.login = login;
this.password = password;
}
}
System.out.println(res.result);
System.out.println("sdasdasdsadsad");
Явно не то, что вы хотите
Для вывода логов в Logcat используйте:
Log.d("TAG", res.result);
P.S.подробнее про использование логов и их классификацию читайте в официальной документации
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Всем добрый деньИзучаю JSF, и в ходе построения страницы возникли несколько вопросов,на которые найти какой то правильный ответ не смог