2017-06-20 3 views
-3

http post、response、http client、string entityなどの古いメソッドは廃止されましたが、2017年にjsonデータをアンドロイドのサーバに投稿する方法を知りたいと思います。私のアプリはJSONを登録または送信することになっています電子メール、連絡先番号、パスワードなどのデータをPOSTメソッドを使用してサーバーに送信し、サーバーはステータス、メッセージ、データ配列というJSON応答を返します。データは2つのオブジェクト(つまりトークンと電子メール)の配列です。助けてください。JSONデータをアンドロイドのサーバーに送信するにはどうすればいいですか?

+0

使用換装、ボレーやHttpURLConnectionの – Anil

+0

をundestandすることは非常に簡単だと思いますこれまでに何を試しましたか? – TriskalJM

+0

あなたはコードを提供することができます、それは非常に役に立つでしょう。私はボレーを試みたが、私はそれを使ってjsonを送る方法を知りませんでしたが、私は正しく答えることができましたが、登録することはできませんでした。 – kloss91

答えて

0

そのフォローのリンクを行うには、この

private void registerUser(){ 
    final String username = editTextUsername.getText().toString().trim(); 
    final String password = editTextPassword.getText().toString().trim(); 
    final String email = editTextEmail.getText().toString().trim(); 

    StringRequest stringRequest = new StringRequest(Request.Method.POST, REGISTER_URL, 
      new Response.Listener<String>() { 
       @Override 
       public void onResponse(String response) { 
        Toast.makeText(MainActivity.this,response,Toast.LENGTH_LONG).show(); 
       } 
      }, 
      new Response.ErrorListener() { 
       @Override 
       public void onErrorResponse(VolleyError error) { 
        Toast.makeText(MainActivity.this,error.toString(),Toast.LENGTH_LONG).show(); 
       } 
      }){ 
     @Override 
     protected Map<String,String> getParams(){ 
      Map<String,String> params = new HashMap<String, String>(); 
      params.put(KEY_USERNAME,username); 
      params.put(KEY_PASSWORD,password); 
      params.put(KEY_EMAIL, email); 
      return params; 
     } 

    }; 

    RequestQueue requestQueue = Volley.newRequestQueue(this); 
    requestQueue.add(stringRequest); 
} 
+0

これは、動作していない前にそれを試しました。なぜなら、jsonデータを送信していないからです。 – kloss91

+0

ボレーも試しましたか?あなたは何のエラーを得ていますか? – Dhanumjay

+0

コードにエラーはなく、登録できません。私は送信中にjsonとしてデータをエンコードする方法を知らない。私もハッシュマップを使用しました。 – kloss91

0

使用ボレーのように試しに例を確認してください。 volley example

RequestQueueクラスのオブジェクトを作成します。

RequestQueue queue = Volley.newRequestQueue(this); 

応答とエラーリスナーとStringRequestを作成します。

StringRequest sr = new StringRequest(Request.Method.POST,"http://api.someservice.com/post/comment", new Response.Listener<String>() { 
    @Override 
    public void onResponse(String response) { 
     mPostCommentResponse.requestCompleted(); 
    } 
}, new Response.ErrorListener() { 
    @Override 
    public void onErrorResponse(VolleyError error) { 
     mPostCommentResponse.requestEndedWithError(error); 
    } 
}){ 
    @Override 
    protected Map<String,String> getParams(){ 
     Map<String,String> params = new HashMap<String, String>(); 
     params.put("user",userAccount.getUsername()); 
     params.put("pass",userAccount.getPassword()); 
     params.put("comment", Uri.encode(comment)); 
     params.put("comment_post_ID",String.valueOf(postId)); 
     params.put("blogId",String.valueOf(blogId)); 

     return params; 
    } 

    @Override 
    public Map<String, String> getHeaders() throws AuthFailureError { 
     Map<String,String> params = new HashMap<String, String>(); 
     params.put("Content-Type","application/x-www-form-urlencoded"); 
     return params; 
    } 
}; 
  • REQUESTQUEUEにあなたの要求を追加します。
queue.add(jsObjRequest); 
1

私はあなたがJSONデータ
you can try this link を送信するためLoopjライブラリを試してみる必要があるとも、 You can try another link

try{ 

     AsyncHttpClient client = new AsyncHttpClient(); 
     JSONObject obj = new JSONObject(); 

     obj.put("email",email); 
     obj.put("contact_number",contact_number); 
     obj.put("password",password); 
     entity = new StringEntity(obj.toString()); 

     client.post(getApplicationContext(), "Your_URL", entity, "application/json", new TextHttpResponseHandler() { 
      @Override 
      public void onFailure(int statusCode, Header[] headers, String responseString, Throwable throwable) { 
       Log.d("LoginActivity","Failed"); 
       Log.d("LoginActivity","body " + responseString); 
      } 

      @Override 
      public void onSuccess(int statusCode, Header[] headers, String responseString) { 
       Log.d("LoginActivity","data " + responseString); 
       try { 
        JSONObject respObj = new JSONObject(responseString); 
        String data = respObj.toString(); 
        Log.d("LoginActivity","Data : " + data); 
       } catch (JSONException e) { 
        e.printStackTrace(); 
       } 
      } 
     }); 
    }catch (Exception ex){ 
     Log.d("LoginActivity","Getting Exception "+ex.toString()); 
    } 
関連する問題