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

안드로이드 php httpurlconnection 통신 - sokettimeoutexception 에러

0 추천
메니페스트에 퍼미션도 줬고 브라우저에서 해당 주소로 치고 들어가면 접속도 됩니다. 안드로이드에서 php서버로 데이터가 안넘어가는데 왜그런지 이해가 안됩니다. 이거 때문에 4일간 고생중인데 정말 틀린게 하나도 없는데 이러니 막막하네요... 코드 쉬우니깐 읽어봐주시고 답변 부탁드립니다. 제발..

 

@Overridepublic boolean onOptionsItemSelected(MenuItem item) {

switch (item.getItemId()) {

case R.id.action_store:
//url, id,pw,contents 등등의 전송 데이터 저장

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;
 

//AsyncTask<Void, Void, String> 생성자를 통한 값 전달, 실행

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 을 통한 데이터 전송
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월 27일 질문
망구c님이 2017년 5월 27일 수정

1개의 답변

0 추천
http://14.43.194.178/insert.php

위 주소를 클릭해보셔요. PC 웹브라우저에서 연결이 안되는것을 보니 서버문제인듯보여집니다.

서버의 방화벽과 공유기포트등을 먼저 점검해보셔요.
kkim (540 포인트) 님이 2017년 5월 27일 답변
...