안드로이드 스튜디오 에서는 아래와 같이 작성 합니다.
// 먼저 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});
}
});
}
});
});
서두 없이 작성해서 죄송합니다. 자세한 내용 원하시면 답변 부탁 드립니다.