마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

안드로이드에서 php로 데이터가 안 넘어 갑니다. ㅠㅠ 안드로이드&php&로그

0 추천
안드로이드

 

@Overridepublic boolean onOptionsItemSelected(MenuItem item) {

switch (item.getItemId()) {

case R.id.action_store:

String url = "http://14.43.194.178/insert.php";

StringBuffer buffer = new StringBuffer();

buffer.append("id").append("=").append(id.getText().toString()).append("&");

buffer.append("pw").append("=").append(pw.getText().toString()).append("&");

buffer.append("Contents").append("=").append(Contents.getText().toString());

// 변수구분은'&' 사용

NetworkTask networkTask = null;

networkTask = new NetworkTask(url, buffer);

networkTask.execute();

return true;

default: return

super.onOptionsItemSelected(item);

}}

private class NetworkTask extends AsyncTask<Void, Void, String>

 {

private String url;

private StringBuffer values;

private NetworkTask(String url, StringBuffer val) {

this.url = url;

this.values = val;

}

@Override

protected void onPreExecute() {

Toast toast = null;

toast = Toast.makeText(WriteReview.this,values,Toast.LENGTH_SHORT);toast.show();}

@Override

protected String doInBackground(Void... params) {

HttpURLConnection urlConn = null;

try{

URL _url = new URL(url);

urlConn = (HttpURLConnection) _url.openConnection();

urlConn.setRequestMethod("POST");

urlConn.setConnectTimeout(10000);

urlConn.setReadTimeout(10000);

urlConn.setDoOutput(true);

urlConn.setDoInput(true);

urlConn.setRequestProperty("content-type", "application/x-www-form-urlencoded");

OutputStream os = urlConn.getOutputStream();

os.write(values.toString().getBytes("utf-8"));

os.flush();

if (urlConn.getResponseCode() != HttpURLConnection.HTTP_OK)

return null;

} catch (MalformedURLException e) {

// for URL.e.printStackTrace();

} catch (IOException e) { // for openConnection().e.printStackTrace();

} finally {if (urlConn != null)urlConn.disconnect();

}

return "me";

}@Overrideprotected void onPostExecute(String s) {

super.onPostExecute(s);

//doInBackground()로부터리턴된값이onPostExecute()의매개변수로넘어오므로s를출력한다.

}

}

================================================================================

php파일

<?php

 

 

 

$id=isset($_POST["id"]) ? $_POST["id"] : 'fail';

$pw=isset($_POST["pw"]) ? $_POST["pw"] : 'fail';

$Contents=isset($_POST["Contents"]) ? $_POST["Contents"] : 'fail';

 

 

$conn = mysqli_connect("127.0.0.1","root","","foodpick");

$query = "INSERT INTO foodrivew(Uname,pw,content) VALUES ('$id','$pw','$Contents')";

$result = mysqli_query($conn, $query);

 

if($result){

echo "1";

echo $id;

echo $pw;

}

else

echo "-1";

 

mysqli_close($conn);

 

?>

 

=============================================================================

 

로그

 

05-26 08:02:45.527 20946-29719/com.example.ckckd.review W/System.err: java.net.SocketTimeoutException: failed to connect to /14.43.194.178 (port 80) after 10000ms

05-26 08:02:45.528 20946-29719/com.example.ckckd.review W/System.err: at libcore.io.IoBridge.connectErrno(IoBridge.java:169)

05-26 08:02:45.528 20946-29719/com.example.ckckd.review W/System.err: at libcore.io.IoBridge.connect(IoBridge.java:122)
망구c (140 포인트) 님이 2017년 5월 26일 질문
망구c님이 2017년 5월 26일 수정

1개의 답변

0 추천

로그에 나오듯 14.43.194.178 에 연결(connect) 하려 했으나 서버에서 응답이 없어,

SocketTimeoutException 이 발생했습니다. 

브라우져에서 14.43.194.178 로 접근이 가능한지 부터 확인 해 보시는게 좋을 듯 하네요..

익명사용자 님이 2017년 5월 26일 답변
접근 가능합니다ㅠㅠ php에 1 과 fail fail 이라고 떠요;;
...