제가 지금 하려는게 서버에 데이터를 보낸 다음 그거에 해당하는 데이터를 받아와서 다른 액티비티의 텍스트뷰에 뿌리려고하거든요 이걸 ㅇㅓ떻게 해야할지 모르겠습니다..도와주세요 ㅠㅠ 제 소스는 비동기 방식으로 데이터 전송입니다...
현재 액티비티 ->서버에 데이터 전송 -> 서버에서 데이터전송 -> 다른 액티비티에서 받기!!
btntm.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
TimeTask task5 = new TimeTask();
task5.execute(infoTv1.getText().toString(), tvd.getText().toString()); //보내는 데이터들
}
});
class TimeTask extends AsyncTask<String, Void, String> {
String sendMsg, receiveMsg;
@Override
// doInBackground의 매개값이 문자열 배열인데요. 보낼 값이 여러개일 경우를 위해 배열로 합니다.
protected String doInBackground(String... strings) {
try {
String str;
URL url = new URL("http://localhost:8080/JJUstubuilding_test/result_set_pro.spring");//보낼 jsp 주소를 ""안에 작성합니다.
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
conn.setRequestMethod("POST");//데이터를 POST 방식으로 전송합니다.
OutputStreamWriter osw = new OutputStreamWriter(conn.getOutputStream());
sendMsg = "yeahyack_gujang_idx="+strings[0]+"&yeahyack_day="+strings[1];//보낼 정보인데요. GET방식으로 작성합니다.
//회원가입처럼 보낼 데이터가 여러 개일 경우 &로 구분하여 작성합니다.
osw.write(sendMsg);//OutputStreamWriter에 담아 전송합니다.
osw.flush();
//jsp와 통신이 정상적으로 되었을 때 할 코드들입니다.
if(conn.getResponseCode() == conn.HTTP_OK) {
InputStreamReader tmp = new InputStreamReader(conn.getInputStream(), "UTF-8");
BufferedReader reader = new BufferedReader(tmp);
StringBuffer buffer = new StringBuffer();
//jsp에서 보낸 값을 받겠죠?
while ((str = reader.readLine()) != null) {
buffer.append(str);
}
receiveMsg = buffer.toString();
Log.i("통신 결과", receiveMsg);
} else {
Log.i("통신 결과", conn.getResponseCode()+"에러");
// 통신이 실패했을 때 실패한 이유를 알기 위해 로그를 찍습니다.
}
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
//jsp로부터 받은 리턴 값입니다.
return receiveMsg;
}
@Override
protected void onPostExecute(String result){
super.onPostExecute(result);
if (result.trim().equals("OK")){
Log.d("결과", "result = " + result);
Intent i = new Intent(getApplicationContext(), Announce.class);
startActivity(i); //여기서 다른 액티비티로 넘어가 거기서 데이터를 받는 방법을 생각하고있습니다.
}else {
Toast.makeText(getApplicationContext(),"확인",Toast.LENGTH_LONG).show();
}
}
}