JAVA

안드로이드 자바로 http 통신하기

Machine_웅 2018. 4. 18. 22:49
728x90
반응형

보통 백그라운드 ( 쓰레드 ) 작업으로 통신을 하기 때문에,  AsyncTask를 사용한다.

 

                     // 아이디    닉네임       비밀번호            이메일         성별          지역
public void postDB(String id, String nickName, String setUserPass, String eMail,String sex,String location){

class joinHTTPt extends AsyncTask<Void, Void, Void> {
String id;
String nickName; String setUserPass;
String eMail;
String sex;
String location;

public joinHTTPt(String id, String nickName, String setUserPass, String eMail,String sex,String location){
this.id = id;
this. nickName = nickName;
this.setUserPass = setUserPass;
this.eMail = eMail;
this.sex = sex;
this. location = location;
}

@Override
protected Void doInBackground(Void... voids) {
try {
Log.d("aaaaaaaaaaaaaaaaaa","Val/////"+id);

//--------------------------
// URL 설정하고 접속하기
//--------------------------


URL url = new URL("http://192.168.0.23/test.php");
HttpURLConnection huc = (HttpURLConnection) url.openConnection();


//--------------------------
// 전송 모드 설정 - 기본적인 설정이다
//--------------------------


huc.setDefaultUseCaches(false);
huc.setDoInput(true); // 서버에서 읽기 모드 지정
huc.setDoOutput(true); // 서버로 쓰기 모드 지정
huc.setRequestMethod("POST"); // 전송 방식은 POST

huc.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");



// 서버로 값 전달.
//--------------------------
// 서버로 값 전송
//--------------------------




StringBuffer buffer = new StringBuffer();
buffer.append("id").append("=").append(id).append("&"); // php 변수에 값 대입
buffer.append("nickName").append("=").append(nickName).append("&");
buffer.append("pass").append("=").append(setUserPass).append("&"); // php 변수 앞에 '$' 붙이지 않는다
buffer.append("eMail").append("=").append(eMail).append("&"); // 변수 구분은 '&' 사용
buffer.append("sex").append("=").append(sex).append("&");
buffer.append("location").append("=").append(location);


OutputStreamWriter outStream = new OutputStreamWriter(huc.getOutputStream(), "UTF-8"); // 안드에서 php로 보낼때 UTF8로 해야지 한글이 안깨진다.
// OutputStreamWriter outStream = new OutputStreamWriter(huc.getOutputStream(), "EUC-KR");
PrintWriter writer = new PrintWriter(outStream);
writer.write(buffer.toString());
writer.flush();


//--------------------------
// 서버에서 전송받기
//--------------------------
InputStreamReader tmp = new InputStreamReader(huc.getInputStream(), "EUC-KR");
BufferedReader reader = new BufferedReader(tmp);
StringBuilder builder = new StringBuilder();
String str;
while ((str = reader.readLine()) != null) { // 서버에서 라인단위로 보내줄 것이므로 라인단위로 읽는다
builder.append(str + "\n"); // View에 표시하기 위해 라인 구분자 추가
}
String myResult = builder.toString(); // 전송결과를 전역 변수에 저장

Log.d("bbbbbbbbbbbbbbbb","aaaaaaaaaaaa/////"+myResult);





} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}

return null;
}
}

joinHTTPt gotoDBUerId = new joinHTTPt(id,nickName,setUserPass,eMail,sex,location);
gotoDBUerId.execute();

}
728x90
반응형