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

php 와 안드로이드 연동 (자료전달)

0 추천

안녕하세요 ^^ 
php를 이용해 자바에서 컨텐츠를 받아오려합니다. 전체적인 구성은 안드로이드에서 컨텐츠 번호가 저장되는 변수를 post로 php 로 보내서 php 가 데이터 베이스에서 해당하는 자료들을 JSON으로 변환해 다시 안드로이드로 보내주는 방식입니다. 
근데 안드로이드에서 보면 아무 자료도 받아오질 못합니다. 예를 들어 $content_no 대신에 305 라는 컨텐츠 번호를 집어넣 으면 해당 자료를 잘 받아옵니다. (때문에 안드로이드엔 이상이 없다고 생각합니다) 

이래저래 해보니까 php 에서 변수를 제대로 받나 확인하려고 인서트 구문을 추가했는데

디비에 이상하게 저장되더라고요, 값이 2개가 저장되는데 1개는 변수값이 정확하고 하나는 빈값인데

이것때문에 자료를 못불러오는것 같은데 이거 왜그런건가요? ㅠ

참고사진 밑에 자료불러오는건 php select 함수에 변수값($c_no)을 안쓰고 컨텐츠 번호를 직접 넣은겁니다


<?
// define('__XE__', true);
 
$DB['host'] = 'localhost';
$DB['db'] = '디비';
$DB['id'] = '아이디';
$DB['pw'] = '아이디';
 
$regsqli = new mysqli($DB['host'], $DB['id'], $DB['pw'], $DB['db']);
 

$Re = array();  

 

$c_no = $_POST['no_content'];  

$res = mysqli_query($regsqli,"select object_id from wp_term_relationships where term_taxonomy_id

LIKE '13'");

$zz = mysqli_query($regsqli,"insert into Regid (regid) values ('$c_no')");    

//변수 제대로 받았나 확인용

$Re = array(); 

$res4 = mysqli_query($regsqli,"select guid from wp_posts where post_parent

LIKE '".$c_no."' and post_type LIKE 'attachment' ");

while($result4 = mysqli_fetch_array($res4)){

 array_push($Re,  

    array('post_content'=>$result4[0] 

    )); 

    }

 

 

 

 

 

echo json_encode(array("little_known"=>$Re));

//끝

 

 

 

 

?>

 


 

 

 

아래는 안드로이드 코드입니다.
 

  private class HttpConnectionThread extends AsyncTask<String, Void, String> {

        String sResult;

        @Override
        protected String doInBackground(String... sId) {
            sResult = "NO";
            String respond;

            try {
                String body = "no_content=" + content_no;
                URL u = new URL("http://honjapan.com/post_content.php");
                HttpURLConnection huc = (HttpURLConnection) u.openConnection();
                huc.setReadTimeout(4000);
                huc.setConnectTimeout(4000);
                huc.setRequestMethod("POST");
                huc.setDoInput(true);
                huc.setDoOutput(true);
                huc.setRequestProperty("utf-8", "application/x-www-form-urlencoded");
                OutputStream os = huc.getOutputStream();
                os.write(body.getBytes("utf-8"));
                os.flush();
                os.close();


                BufferedReader is = new BufferedReader(new InputStreamReader(huc.getInputStream(), "UTF-8"));
                int ch;
                StringBuffer sb = new StringBuffer();
                while ((ch = is.read()) != -1) {
                    sb.append((char) ch);
                }
                if (is != null) {
                    is.close();
                }

                sResult = sb.toString();

            } catch (Exception e) {
            }
            return sResult;
        }
    }


 

 

껄껄앱 (1,910 포인트) 님이 2016년 4월 21일 질문
게시글 글이때문에 php 에서 json 으로 자료를 받는 코드는 여기 적겠습니다.
class GettingPHP extends AsyncTask<String, Integer, String> {

    @Override
    protected String doInBackground(String... params) {
        StringBuilder jsonHtml = new StringBuilder();
        try {
            URL phpUrl = new URL(params[0]);
            HttpURLConnection conn = (HttpURLConnection) phpUrl.openConnection();

            if (conn != null) {
                conn.setConnectTimeout(10000);
                conn.setUseCaches(false);

                if (conn.getResponseCode() == HttpURLConnection.HTTP_OK) {
                    BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream()));
                    while (true) {
                        String line = br.readLine();

                        if (line == null)
                            break;
                        jsonHtml.append(line + " ");

                    }
                    br.close();
                }
                conn.disconnect();

            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        Log.d("ok3",content_no);
        return jsonHtml.toString();

    }

 

 

        protected void onPostExecute(String str) {
            Log.d("ok4",content_no);
            try {

                // PHP에서 받아온 JSON 데이터를 JSON오브젝트로 변환

                JSONObject jObject = new JSONObject(str);
                // results라는 key는 JSON배열로 되어있다.

                JSONArray results = jObject.getJSONArray("little_known");

                Log.d("ok5",content_no);
                List<post_data> items=new ArrayList<>();
                for ( int i = 0; i < results.length(); i++ ) {
                    Log.d("ok6", content_no);
                    JSONObject temp = results.getJSONObject(i);
                    post_thum = temp.getString("post_content"); //게시글 썸네일 and php 에 등록한 키

 

                        Log.d("ok2",post_thum);

                        post_data[] item=new post_data[i+1];
                        item[i]=new post_data(post_thum , "ㅎㅎ..ㅈㅅ;;..ㅋㅋ");

                        items.add(item[i]);
                    // 갯수를 딱 맞춰야함
                    recyclerView.setAdapter(new post_list_thum(getApplicationContext(), items, R.layout.post_little_known));

                }

                Log.d("ok7",content_no);

 

            } catch (JSONException e) {
                e.printStackTrace();

            }
        }
    }

 

}

답변 달기

· 글에 소스 코드 보기 좋게 넣는 법
· 질문에 대해 추가적인 질문이나 의견이 있으면 답변이 아니라 댓글로 달아주시기 바랍니다.
표시할 이름 (옵션):
개인정보: 당신의 이메일은 이 알림을 보내는데만 사용됩니다.
스팸 차단 검사:
스팸 검사를 다시 받지 않으려면 로그인하거나 혹은 가입 하세요.
...