2017-06-14 2 views
0

私のアプリは成功した応答で動かすことができません。私はサインアップしようとしています。 私は私の活動にonResponseにこの応答を得た:POSTとNodeJSを追加する

"レスポンス{プロトコル= HTTP/1.1、コード= 400、メッセージ=無効な要求、URL = http://myip:8122/consumer/signup}"

私はわからないが、私は思いますそれはparamsを送信していません。

私はPostManでテストしています。私は、 "POST" を選択し、私はこのURLを書いた:ポストマンでhttp://myip:8122/consumer/signup?f=Maria&l=Lucia&[email protected]&p=pass123

それが正常に動作します:{ "ステータス": "成功"、 "メッセージ": "作成したユーザー"}

マイアクティビティ:

 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; 
    } 

} 

マイノードコード:それはクイックチェンジであるべき?key=value&構文

を使用してURLに追加されますので、あなたが@Queryパラメータ、ない@Fieldパラメータを必要とする

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 
    }); 
    }); 
} 

答えて

1

、あなたも削除することがありますFormUrlEncoded

+0

ありがとう!できます! – Victor

関連する問題