성공 응답으로 내 앱을 실행할 수 없습니다. 가입하려고합니다. 내 활동에서 onResponse에 대한 응답을 받았습니다.
"{protocol = http / 1.1, code = 400, message = Bad Request, url = http : // myip : 8122 / consumer / signup }에 응답 "
확실하지 않지만 매개 변수를 전송하지 않는 것 같습니다.
PostMan에서 테스트했으며 작동합니다. "POST"를 선택하고 다음 URL을 작성했습니다. http : // myip : 8122 / consumer / signup? f=Maria&l=Lucia&[email protected]&p=pass123
Postman에서는 성공적으로 작동합니다 : { "status": "success", "message": "created user"}
내 활동 :
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);
}
ResponseInsertUser :
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;
}
}
내 노드 코드 :
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
});
});
}
구문을 사용하여 URL에 추가되므로 @Query
매개 변수가 아닌 @Field
매개 변수 가 필요 ?key=value&
합니다.
빠른 변경이어야하지만 제거 할 수도 있습니다. FormUrlEncoded
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다