Java 改进零响应

Java 改进零响应,java,android,json,retrofit,okhttp,Java,Android,Json,Retrofit,Okhttp,你好,我和我大学的团队决定创建一个应用程序,健身房的客户可以看到他/她的锻炼列表,我们正在使用改型来获取json。早期这段代码运行得很好,但突然停止工作,现在我从回调中得到空响应和状态200 对不起我的英语 我的JSON { "0":{ "id":"1", "nome":"Fernanda Kondrat", "peso":"67.4", "altura":"172", "imc":"22.8", "login":"fefe", "senha":"1234"}, "lista_exercic

你好,我和我大学的团队决定创建一个应用程序,健身房的客户可以看到他/她的锻炼列表,我们正在使用改型来获取json。早期这段代码运行得很好,但突然停止工作,现在我从回调中得到空响应和状态200

对不起我的英语

我的JSON

{
"0":{
"id":"1",
"nome":"Fernanda Kondrat", 
"peso":"67.4",
"altura":"172",
"imc":"22.8",
"login":"fefe",
"senha":"1234"},
"lista_exercicios":[
{
"id":"1",
"id_aluno":"1",
"nome":"supino reto",
"num_serie":"3",
"num_repeticao":"10"
},
{
"id":"2",
"id_aluno":"1",
"nome":"agachamento hack",
"num_serie":"3",
"num_repeticao":"10"
},
{
"id":"3",
"id_aluno":"1",
"nome":"barra fixa",
"num_serie":"3",
"num_repeticao":"10"
 },
{
"id":"4",
"id_aluno":"1",
"nome":"leg press",
"num_serie":"4",
"num_repeticao":"10"
}
]
}
现在是MainActivity.java

 import android.content.Intent;
 import android.support.v7.app.AppCompatActivity;
 import android.os.Bundle;
 import android.text.TextUtils;
 import android.util.Log;
 import android.view.View;
 import android.widget.Button;
 import android.widget.EditText;
 import android.widget.Toast;

 import com.u9.fabapp.virtualgym.APIClient;
 import com.u9.fabapp.virtualgym.RespostaLogin;
 import com.u9.fabapp.virtualgym.Resposta;

 import retrofit.Callback;
 import retrofit.RetrofitError;
 import retrofit.client.Response;

public class MainActivity extends AppCompatActivity {

Button btn_login;
EditText edt_login;
EditText edt_senha;

private Callback<RespostaLogin> respostaCallback;

private static final String TAG = "MainActivity";
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    btn_login = findViewById(R.id.btn_login);
    edt_login = findViewById(R.id.edt_Login);
    edt_senha= findViewById(R.id.edt_Senha);

    btn_login.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            //Log.d(TAG, "onClick: ");
            //Intent i = new Intent(MainActivity.this, ProfileActivity.class);
            //startActivity(i);

            String login = edt_login.getText().toString();
            String senha = edt_senha.getText().toString();
            if(TextUtils.isEmpty(login)|| TextUtils.isEmpty(senha)) {
                Toast.makeText(MainActivity.this, "Campos vazios", Toast.LENGTH_SHORT).show();
            } else {
                configurarCallback();
                //new APIClient().getRestService().setUsuarioLoginDTO(login, senha, respostaCallback);
                new APIClient().getRestService().setUsuarioLoginDTO(login, senha, respostaCallback);
            }

        }
    });

}

private void configurarCallback() {
    respostaCallback = new Callback<RespostaLogin>() {
        @Override
        public void success(RespostaLogin resposta, Response response) {

            Log.d(TAG, "Funcionou: "+ response.getStatus());
            Log.d(TAG, "Funcionou: " + resposta.getRETORNO());

            /*if (resposta.getRETORNO().equals("SUCESSO")){
                Intent intent1 = new Intent(MainActivity.this, ProfileActivity.class);
                startActivity(intent1);
            }else{
                Toast.makeText(MainActivity.this, resposta.getRETORNO() +" ,Verifique usuário e senha" , Toast.LENGTH_SHORT).show();
            }*/
        }

        @Override
        public void failure(RetrofitError error) {
            Toast.makeText(MainActivity.this, "Deu Ruim: " + error.getMessage(), Toast.LENGTH_SHORT).show();
        }
    };
}

}
导入android.content.Intent;
导入android.support.v7.app.AppActivity;
导入android.os.Bundle;
导入android.text.TextUtils;
导入android.util.Log;
导入android.view.view;
导入android.widget.Button;
导入android.widget.EditText;
导入android.widget.Toast;
导入com.u9.fabapp.virtualgym.APIClient;
导入com.u9.fabapp.virtualgym.RespostaLogin;
导入com.u9.fabapp.virtualgym.Resposta;
进口改装.回收;
导入改装。改装错误;
导入reformation.client.Response;
公共类MainActivity扩展了AppCompatActivity{
按钮btn_登录;
EditText edt_登录;
EditText edt_senha;
私有回调函数;
私有静态最终字符串TAG=“MainActivity”;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn_login=findviewbyd(R.id.btn_login);
edt\u登录=findViewById(R.id.edt\u登录);
edt_senha=findViewById(R.id.edt_senha);
btn_login.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图){
//Log.d(标记“onClick:”);
//意图i=新意图(MainActivity.this、ProfileActivity.class);
//星触觉(i);
String login=edt_login.getText().toString();
字符串senha=edt_senha.getText().toString();
if(TextUtils.isEmpty(登录)| | TextUtils.isEmpty(senha)){
Toast.makeText(MainActivity.this,“Campos vazios”,Toast.LENGTH_SHORT.show();
}否则{
configurarCallback();
//新的APIClient().getRestService().setUsuarioLoginDTO(login、senha、respostaCallback);
新的APIClient().getRestService().setUsuarioLoginDTO(login、senha、respostaCallback);
}
}
});
}
专用void configurarCallback(){
respostaCallback=new Callback(){
@凌驾
公共无效成功(RespostLogin resposta,Response Response){
Log.d(标记“functionou:+response.getStatus());
Log.d(标记“functionou:+resposta.getretrono());
/*if(resposta.getRetrono().equals(“SUCESSO”)){
Intent intent1=新的Intent(MainActivity.this、ProfileActivity.class);
星触觉(intent1);
}否则{
Toast.makeText(MainActivity.this,resposta.getretrono()+”,verifyque usuário e senha),Toast.LENGTH_SHORT.show();
}*/
}
@凌驾
公共无效失败(错误){
Toast.makeText(MainActivity.this,“Deu Ruim:+error.getMessage(),Toast.LENGTH_SHORT).show();
}
};
}
}
APIClient.java

import com.u9.fabapp.virtualgym.Resposta;

import com.u9.fabapp.virtualgym.RespostaLogin;
import retrofit.Callback;
import retrofit.RestAdapter;
import retrofit.client.OkClient;
import retrofit.http.GET;
import retrofit.http.Query;
import retrofit.http.Path;

public class APIClient {

private static RestAdapter REST_ADAPTER;

public APIClient(){
    createAdapterIfNeeded();
}

private static void createAdapterIfNeeded() {
    if(REST_ADAPTER == null){
        REST_ADAPTER = new RestAdapter
                .Builder()
                .setEndpoint("http://golfetto.16mb.com/virtual-fit/home/")
                .setLogLevel(RestAdapter.LogLevel.FULL)
                .setClient(new OkClient())
                .build();
    }
}

public RestServices getRestService(){
    return REST_ADAPTER.create(RestServices.class);
}



public interface RestServices{

    @GET("/getExercicios.php")
    void setUsuarioLoginDTO(
            @Query("LOGIN") String login,
            @Query("SENHA") String senha,
            Callback<RespostaLogin> callbackResposta
    );
}

}
import com.u9.fabapp.virtualgym.Resposta;
导入com.u9.fabapp.virtualgym.RespostaLogin;
进口改装.回收;
进口改装.RestAdapter;
导入reformation.client.OkClient;
导入reformation.http.GET;
导入reformation.http.Query;
导入reformation.http.Path;
公共类客户端{
专用静态重启适配器REST_适配器;
公共APIClient(){
createAdapterIfNeed();
}
私有静态void createAdapterIfNeeded(){
if(REST_适配器==null){
REST_适配器=新的重新适配器
.Builder()
.setEndpoint(“http://golfetto.16mb.com/virtual-fit/home/")
.setLogLevel(RestAdapter.LogLevel.FULL)
.setClient(新的OkClient())
.build();
}
}
公共RestServices getRestService(){
返回REST\u ADAPTER.create(RestServices.class);
}
公共接口服务{
@获取(“/getExercicios.php”)
void setUsuarioLoginDTO(
@查询(“登录”)字符串登录,
@查询(“SENHA”)字符串SENHA,
回调回拨Resposta
);
}
}
在界面“RestService”中,更改为:

  @GET("/getExercicios.php")
将其修改为:

  @GET("getExercicios.php")
删除“/”,因为它已被追加

感谢并愉快地在界面“RestService”中编码,更改地点:

  @GET("/getExercicios.php")
将其修改为:

  @GET("getExercicios.php")
删除“/”,因为它已被追加


感谢并愉快地编码

您服务的完整URL将

BASE\u URL(在创建改造对象时定义)+END\u POINT\u URL(在界面中定义)

您已经添加了“”作为基本URL,并且在接口中将端点定义为“/GetExerciIOS.php”,因此完整的URL将是

”http://golfetto.16mb.com/virtual-fit/home//getExercicios.php“

这不是有效的URL。因此,必须从接口中删除“/”

接口将是

public interface RestServices{

@GET("getExercicios.php")
void setUsuarioLoginDTO(
        @Query("LOGIN") String login,
        @Query("SENHA") String senha,
        Callback<RespostaLogin> callbackResposta
);
公共接口RestServices{
@获取(“getExercicios.php”)
void setUsuarioLoginDTO(
@查询(“登录”)字符串登录,
@查询(“SENHA”)字符串SENHA,
回调回拨Resposta
);

}您的服务的完整URL将

BASE\u URL(在创建改造对象时定义)+END\u POINT\u URL(在界面中定义)

您已经添加了“”作为基本URL,并且在接口中将端点定义为“/GetExerciIOS.php”,因此完整的URL将是

”http://golfetto.16mb.com/virtual-fit/home//getExercicios.php“

这不是有效的URL。因此,必须从接口中删除“/”

接口将是

public interface RestServices{

@GET("getExercicios.php")
void setUsuarioLoginDTO(
        @Query("LOGIN") String login,
        @Query("SENHA") String senha,
        Callback<RespostaLogin> callbackResposta
);
公共接口RestServices{
@获取(“getExercicios.php”)
void setUsuarioLoginDTO(
@查询(“登录”)字符串登录,
@查询(“SENHA”)字符串SENHA,
回调回拨Resposta
);
}

明白了。使用
@GET(“getExercicios.php”)
。你