Я использую nodejs с приложением android с использованием модификации.
У меня проблема с методом get.
login.js //Nodejs code
response.redirect("/details?vv="+ajx); //ajx contains the regno that means it contains 101
app.get('/details',(request, response) =>
{
var ajx2=request.query.vv;
var sql2 = "select * from student where regno='"+ajx2+"'";
connection.query(sql2, function (err, gk)
{
if(gk.length > 0)
{
Object.keys(gk).forEach(function(key){
var rea=gk[key];
const objToSend={
reg1:rea.regno,
name1:rea.s_name
}
response.status(300).send(JSON.stringify(objToSend))
console.log("True");
console.log(objToSend);
});
}
else
{
response.status(600).send()
}
});
});
На моей консоли все работает нормально. True {reg1: '101', name1: 'XYZ'}
Но в android studio response.body () не работает, возвращает null.
RetrofitInterface.java
@GET("/details")
Call<LoginResult> getLog(@Query("vv") String vv);
LoginResult.java
package com.example.nodue;
import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;
public class LoginResult
{
@SerializedName("reg1")
@Expose
private String reg1;
public String getReg1()
{
return reg1;
}
public void setReg1(String reg1)
{
this.reg1=reg1;
}
}
I am also tried without @SerializedName() and @Expose but its not working..
Only getter,setter its not working
ThirdActivity.java
retrofit = new Retrofit.Builder()
.baseUrl(BASE_URL)
.addConverterFactory(GsonConverterFactory.create())
.build();
RetrofitInterface request=retrofit.create(RetrofitInterface.class);
Call<LoginResult> call=request.getLog(vv);
call.enqueue(new Callback<LoginResult>() {
@Override
public void onResponse(Call<LoginResult> call, Response<LoginResult> response) {
if(response.code()==300)
{
LoginResult aji=response.body(); // its returns null..
Log.d("hh","Hwllo");
System.out.println(aji);
//listView.setAdapter(new ArrayAdapter<String>(getApplicationContext(),android.R.layout.simple_list_item_1,go));
Toast.makeText(ThirdActivity.this,aji.getReg1(),Toast.LENGTH_LONG).show();
}
}
@Override
public void onFailure(Call<LoginResult> call, Throwable t) {
Toast.makeText(ThirdActivity.this,t.getMessage(),Toast.LENGTH_LONG).show();
}
});
}
Я использую тот же метод для получения списка деталей, используя List<LoginResult> aji=response.body
. Здесь я могу получить несколько строк, все работает нормально. Таким образом, тот же метод, который я должен использовать для выборки одной строки без списка, я использую LoginResult aji=response.body()
, но он возвращает null ... Пожалуйста, помогите мне ..