메니페스트에 퍼미션도 줬고 브라우저에서 해당 주소로 치고 들어가면 접속도 됩니다. 안드로이드에서 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)