2017-09-19 1 views
1

내 앱에 로그인 화면이 있습니다. 입력 필드에서 전화 번호를 검색하여 발리와 함께 게시물 요청으로 백엔드 서버로 보내고 싶습니다.발리 Android로 서버에 POST 요청 보내기

"user": { 
    "phone": 909099999 
} 

내가 코드 블록을 시도했다 : 백엔드 서버는이 방식으로 구성되어

final String phone = login_phoneTET.getText().toString(); 

    Map<String, String> params = new HashMap<>(); 
    params.put("phone", phone); 

    JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.POST, 
      Constants.TING_OTP_ENDPOINT, 
      new JSONObject(params), 
      new Response.Listener<JSONObject>() { 
      @Override 
      public void onResponse(JSONObject response) { 
      Log.d(TAG, "Success"); 
      } 
      }, new Response.ErrorListener() { 
      @Override 
      public void onErrorResponse(VolleyError error) { 
      Log.d(TAG, "Failed with an Error" + error.getMessage()); 
      error.printStackTrace(); 
      } 
      } 
     ) { 
      @Override 
      public Map<String, String> getHeaders() throws AuthFailureError { 
      HashMap<String, String> headers = new HashMap<>(); 
      headers.put("Content-Type", "application/json; charset=utf-8"); 
      return headers; 
      } 
     }; 

    jsonObjectRequest.setRetryPolicy(new DefaultRetryPolicy(20000, 0, DefaultRetryPolicy.DEFAULT_BACKOFF_MULT)); 
    VolleySingleton.getVolleySingleton(this).addToRequestQueue(jsonObjectRequest); 

을 또한 문자열 요청을 사용했습니다. logcat에서이 오류가 계속 발생합니다.

E/Volley: [22489] BasicNetwork.performRequest: Unexpected response code 500 for https://:):)/api/user/generateOTP 

이 요청을 올바르게 작성 했습니까? 아니면 더 좋은 방법이 있습니까? 감사.

답변

2

서버 측 오류입니다. 그래서 당신이 당신의 서버에 대해 걱정할 필요가 있다고 생각합니다.

+0

좋아, 감사합니다. 정수로 변환하거나 그 반대로 형식 변환 오류가있을 수 있습니까? –

+0

그렇지 않을 수도 있습니다. 실제로 코드를 보지 않으면 대답하기가 어렵습니다. 여기에 관련 코드를 게시하면 대답하기 쉽습니다. – Mafujul

0

json의 유효성을 확인하려면 https://jsonlint.com/을 사용하십시오 (보내는 사람과받는 사람의 유효 함).

당신이 쓴 JSON, 당신이 보내는 하나 인 경우

"user": { 
"phone": 909099999} 

다음의 유효한 JSON이하고 오류가 :

Error: Parse error on line 1: 
"user": { "phone": 909099 
------^ 
Expecting 'EOF', '}', ',', ']', got ':'