Ich kann meine App nicht mit einer Erfolgsantwort ausführen. Ich versuche mich anzumelden. bekam ich diese Antwort auf onResponse in meiner Tätigkeit:Retrofit POST und NodeJS
"Antwort {protocol = http/1.1, Code = 400, message = Bad Request, url = http://myip:8122/consumer/signup}"
Ich bin nicht sicher, aber ich denke, es sendet nicht die params.
Ich habe es auf PostMan getestet und es funktioniert. Wie wähle ich die "POST" und ich schrieb diese URL: http://myip:8122/consumer/signup?f=Maria&l=Lucia&[email protected]&p=pass123
Auf Postman es funktioniert erfolgreich: { "Status": "Erfolg", "message": "erstellten Benutzer"}
Meine Aktivität:
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(BonaService.BASE_URL_SIGN_UP)
.addConverterFactory(GsonConverterFactory.create())
.build();
BonaService service = retrofit.create(BonaService.class);
Call<ResponseInsertUser> callRegisterUser = service.registerUser("John", "Clark", "[email protected]", "vtnctrump");
callRegisterUser.enqueue(new Callback<ResponseInsertUser>() {
@Override
public void onResponse(Call<ResponseInsertUser> call, Response<ResponseInsertUser> response) {
if(!response.isSuccessful()){
// HERE!!!!
Log.i("TAG", "Error: "+ response.code());
} else {
ResponseInsertUser body = response.body();
}
}
@Override
public void onFailure(Call<ResponseInsertUser> call, Throwable t) {
Log.e("TAG", "ERROR: "+ t.getMessage());
}
});
BonaService:
public interface BonaService {
String BASE_URL = "http://myip:5000/";
String BASE_URL_SIGN_UP = "http://myip:8122/";
@GET("listRandom")
Call<BonaCatalog> listCatalog();
@FormUrlEncoded
@POST("consumer/signup")
Call<ResponseInsertUser> registerUser(@Field("f") String f,
@Field("l") String l,
@Field("e") String e,
@Field("p") String p);
}
Resp onseInsertUser:
public class ResponseInsertUser {
private String status, message;
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
}
Mein Knoten Code:
function insertUser(req, res, next) {
var first = req.query.f;
db.any('insert into user(id, first_name, last_name, email, password, user_status_id) values((select max(id) from user)+1, $1, $2, $3, $4, 1)', [req.query.f, req.query.l, req.query.e, req.query.p])
.then(function (data) {
res.status(201).json({
status: 'success',
message: 'created user'
})
})
.catch(function (err){
res.status(400).json({
status:'fail',
message: 'Error!',
test: first
});
});
}
Danke! Es klappt! – Victor