2016-04-14 7 views
0

私のエンキューコールでレトロフィットによって送信された生のjsonをチェックしたいと思います。ここに行く私のクリックイベントのコード:jsonがレトロフィットで送信されていることを確認してください

  public void onClick(View v) { 
       ArrayList<Product> products = ((MenuAdapter)rvMenuProducts.getAdapter()).getOrderItens(); 
       ArrayList<Item> orderItemList = new ArrayList<Item>(); 
       for(Product p: products){ 
        orderItemList.add(new Item(p)); 
       } 
       EditText etCardNumber = (EditText) findViewById(R.id.et_card_number); 
       String cardNumber = etCardNumber.getText().toString(); 

       if(GenericUtils.stringIsNotNullAndNotEmpty(cardNumber)){ 
        NewOrder newOrder = new NewOrder(waiterId, establishmentId, cardNumber, orderItemList); 

        WaiterRequester.addOrder(newOrder, new Callback<AddOrderResultInfo>() { 
         @Override 
         public void onResponse(Call<AddOrderResultInfo> call, Response<AddOrderResultInfo> response) { 
          int a = 5; 

          Toast.makeText(context, "Pedido realizado com sucesso", Toast.LENGTH_SHORT).show(); 
         } 

         @Override 
         public void onFailure(Call<AddOrderResultInfo> call, Throwable t) { 
          int b = 5; 

          Toast.makeText(context, "VISH", Toast.LENGTH_SHORT).show(); 
         } 
        }); 
       } 
       else{ 
        etCardNumber.setError("ERROOOOOOO"); 
       } 
      } 

私のリターンはブール値であるため、しかし、私は知らないことを、私は私のAPIを呼び出して、そして、私は私のAPIのいくつかの例外を取得していますどのようにそれをです私が郵便配達員を使ってリクエストを送ったとき、それは動作します!ここで

は郵便配達によって送られたJSONです:

{ 
    "newOrder": 
    { 
     "idWaiter" : 1, 
     "idEstablishment": 6, 
     "cardNumber": "123", 
     "listItem": [{ "idProduct": 1, "quantity": 1 }] 
    } 
} 

そして、私のクラスNewOrderがある:

public class NewOrder { 

    public int idWaiter; 
    public long idEstablishment; 
    public String cardNumber; 
    public ArrayList<Item> listItem; 

    public NewOrder() { 
    } 

    public NewOrder(int idWaiter, long idEstablishment, String cardNumber, ArrayList<Item> listItem) { 
     this.idWaiter = idWaiter; 
     this.idEstablishment = idEstablishment; 
     this.cardNumber = cardNumber; 
     this.listItem = listItem; 
    } 

    public int getIdWaiter() { 
     return idWaiter; 
    } 

    public void setIdWaiter(int idWaiter) { 
     this.idWaiter = idWaiter; 
    } 

    public long getIdEstablishment() { 
     return idEstablishment; 
    } 

    public void setIdEstablishment(long idEstablishment) { 
     this.idEstablishment = idEstablishment; 
    } 

    public String getCardNumber() { 
     return cardNumber; 
    } 

    public void setCardNumber(String cardNumber) { 
     this.cardNumber = cardNumber; 
    } 

    public ArrayList<Item> getListItem() { 
     return listItem; 
    } 

    public void setListItem(ArrayList<Item> listItem) { 
     this.listItem = listItem; 
    } 
} 

とアイテム:

public class Item { 

    public long idProduct; 
    public int quantity; 

    public Item() { 
    } 

    public Item(Product p) { 
     this.setQuantity(p.getQuantity()); 
     this.setIdProduct(p.getIdProduct()); 
    } 

    public Item(int idProduct, int quantity) { 
     this.idProduct = idProduct; 
     this.quantity = quantity; 
    } 

    public long getIdProduct() { 
     return idProduct; 
    } 

    public void setIdProduct(long idProduct) { 
     this.idProduct = idProduct; 
    } 

    public int getQuantity() { 
     return quantity; 
    } 

    public void setQuantity(int quantity) { 
     this.quantity = quantity; 
    } 
} 

EDIT:

それは、有用かもしれない、By Object is arrバックエンドでヌルとして動く

答えて

0

Retrofit 2を使用しているようですので、すべてのリクエストを記録するためのインターセプタを作成することができます。

は、あなたの依存関係に'com.squareup.okhttp3:logging-interceptor:3.2.0'を追加して、このようなあなたのOkHttpClientを構築:

HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor(); 
interceptor.setLevel(HttpLoggingInterceptor.Level.BODY); 
OkHttpClient client = new OkHttpClient.Builder().addInterceptor(interceptor).build(); 
+0

どうexaclty私はこれらのログを印刷することができますか? – guisantogui

+0

上記のコードを使用すると、ログは自動的にlogcatに出力されます –

+0

ここには印刷されませんでした: – guisantogui

関連する問題