안녕하세요.
http://twinw.tistory.com/29
위 페이지를 보고, 안드로이드 단에서 mysql에 데이터 넣는 것을 해 보고 있는데요.
안드로이드 코드는 아래와 같습니다.
NetworkUtil.setNetworkPolicy();
try{
InsertTrafficData inserttrafficdata = new InsertTrafficData("http://jungjihyun.zpat.info/data_insert.php";);
String result = inserttrafficdata.InsertData("jungjihyun","1434",
"2016-10-01 13:50:21","36.9","45.8","1");
if(result.equals("1")){
Toast.makeText(getApplication(),"Inserted",Toast.LENGTH_LONG).show();
}else{
Toast.makeText(getApplication(),String.valueOf(result),Toast.LENGTH_LONG).show();
}
}catch(MalformedURLException e){
e.printStackTrace();
}
--------------------------------------------------
package com.jinasoft.webtrafficdatatransfer;
import android.util.Log;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
/**
* Created by Jungjihyun on 2016-10-06.
*/
public class InsertTrafficData {
private URL url;
public InsertTrafficData(String url) throws MalformedURLException{this.url = new URL(url);}
private String readStream(InputStream in) throws IOException{
StringBuilder jsonHtml = new StringBuilder();
BufferedReader reader = new BufferedReader(new InputStreamReader(in, "UTF-8"));
String line = null;
while((line=reader.readLine()) != null)
jsonHtml.append(line);
reader.close();
return jsonHtml.toString();
}
//Traffic Data insert
public String InsertData(final String id, final String carnumber, final String time,
final String latitute, final String longitute, final String status ){
try{
String postData = "id="+id+"&"+"carnumber="+carnumber+"&"+"time="+time+"&"+"latitute="+latitute
+"&"+"longitute="+longitute+"&"+"status="+status;
HttpURLConnection conn = (HttpURLConnection)url.openConnection();
conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
conn.setRequestMethod("POST");
conn.setConnectTimeout(5000);
conn.setDoOutput(true);//body에 뭔가 쓰기
conn.setDoInput(true);
OutputStream outputStream = conn.getOutputStream();
outputStream.write(postData.getBytes("UTF-8"));
outputStream.flush();
outputStream.close();
String result = readStream(conn.getInputStream());
conn.disconnect();
return result;
}catch(Exception e){
Log.i("TrafficDataPHPRequest","request was failed");
return null;
}
}
}
php 코드는 아래와 같습니다.
<?php
header("Content-Type: text/html;charset=UTF-8");
$conn = mysqli_connect('**','**','**');
mysqli_select_db($conn ,"trafficdatadb");
mysqli_set_charset($conn,"euckr");
$data_stream ="'".$_POST["id"]."','".$_POST["carnumber"]."','"
.$_POST["time"]."','".$_POST["latitute"]."','".$_POST["longitute"]."','".$_POST["status"]."'";
echo $data_stream;
$query = "insert into carinfo(id,carnumber,time,latitute,longitute,status) values (".$data_stream.")";
$result = mysqli_query($conn, $query);
if($result)
echo "1";
else
echo $data_stream;
mysqli_close($conn);
?>
웹으로만 php 테스트 했을때는 정상적으로 echo가 1이 오던데 안드로이드에서 테스트 하니까 안 되네요.
고수님들 조언 부탁 드리겠습니다.