안드로이드 스튜디오 에서는 아래와 같이 작성 합니다.
// 먼저 volley 를 import 합니다. import com.android.volley.Request; import com.android.volley.RequestQueue; import com.android.volley.Response; import com.android.volley.VolleyError; import com.android.volley.toolbox.JsonObjectRequest; // NODE 서버로 보내기 (보내는 함수 안에 아래 사용) // node 서버에 보낼 값 Json 형태로 만들기 JSONObject requestJsonObject = new JSONObject(); try { requestJsonObject.put("seq", seq); } catch(JSONException e) { e.printStackTrace(); } // 2. RequestQueue 선언 RequestQueue requestQueue = VolleyNetwork.getInstance(this).getRequestQueue(); // 3. node 서버 IP와 받을 경로 수정 (http://192.168.20.123:3000/post) 하고, JsonObjectRequest R_Object = new JsonObjectRequest(Request.Method.POST,"http://192.168.20.123:3000/receiv", requestJsonObject, new Response.Listener() { @Override public void onResponse(JSONObject response) { JSONArray J_JsonArray = new JSONArray(); try { J_JsonArray = response.getJSONArray("results"); JSONObject dataObj = J_JsonArray.getJSONObject(0); EditText etId = (EditText) findViewById(R.id.etId); EditText etName = (EditText) findViewById(R.id.etName); etId.setText(dataObj.getString("id")); etName.setText(dataObj.getString("name")); } catch(JSONException e) { e.printStackTrace(); } } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError error) { Toast.makeText(context, "네트워크 연결 오류.", Toast.LENGTH_SHORT).show(); Log.i("VolleyError", "Volley Error in receiv"); } }); requestQueue.add(R_Object); // NODE 서버에서 받기 해당 함수 안에 아래 사용 // 값 가져오기 EditText etId = (EditText) findViewById(R.id.etId); EditText etName = (EditText) findViewById(R.id.etName); // 값 세팅 Id = String.valueOf(etId.getText()); Name = String.valueOf(etName.getText()); // Json 형태로 만들기 JSONObject requestJsonObject = new JSONObject(); try { requestJsonObject.put("Id", Id); requestJsonObject.put("Name", Name); } catch(JSONException e) { e.printStackTrace(); } final Context context = this; // volleynetwork 선언 RequestQueue requestQueue = VolleyNetwork.getInstance(this).getRequestQueue(); JsonObjectRequest S_Object = new JsonObjectRequest(Request.Method.POST, "http://192.168.20.123:3000/send", requestJsonObject, new Response.Listener () { @Override public void onResponse(JSONObject response) { // 받아올 값이 없으므로 빈란 } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError error) { Toast.makeText(context, "네트워크 연결 오류.", Toast.LENGTH_SHORT).show(); Log.i("VolleyError", "Volley Error in send"); } }); // 실행 requestQueue.add(S_Object);
위에서 넘긴 값을 Node 서버에서 아래와 같이 처리 합니다.(receiv 의 경우)
// index.js server.post('/receiv', function(req, res) { // receiv 에서 넘긴 seq 값 변수로 담기 var id = req.body.seq; var sql = 'SELECT a.id, a.name FROM table as a where a.seq = '+seq; dbPool.getConnection(function(err, dbConnection) { if(err){ dbConnection.release(); console.log('ERROR: CANNOT CONNECT Mysql'); console.log(err); response.status(500).send('Internal Server Error'); }else{ dbConnection.query(sqlgetMemList, function(err, result, fields) { if(err) { dbConnection.release(); console.log('ERROR: CANNOT QUERY Mysql'); console.log(err); res.status(500).send('Internal Server Error'); } else { dbConnection.release(); res.setHeader('Content-Type', 'application/json; charset=utf-8'); res.status(200); res.json({"results": result}); } }); } }); });
서두 없이 작성해서 죄송합니다. 자세한 내용 원하시면 답변 부탁 드립니다.