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

JSON을 이용하여 post 방식으로 php와 통신하기

0 추천

 

아래에도 질문을 올리고

 

혼자서 아무리 뒤져봤지만,

도대체 뭐가 문제인지 해결책을 찾지 못 했습니다.

 

이것 때문에 벌써 3일째 아무것도 못 하고 있습니다. ㅠㅠ

 

http://cl.ly/091p3F3i3b3G

 

프로젝트 첨부합니다. 

 

php 는 

 

 

<?
$value = json_decode(stripslashes($_POST['json']), true);
file_put_contents('input.txt', $value) or die("file_put_contents failed");
print (json_encode($value));
?>
 
받은걸 다시 그대로 돌려줘서 체크할 수 있게 이렇게 만들어 놨습니다.
 
 
한번만 살려주세요 ㅠ.ㅠ
맛있다얍얍 (1,130 포인트) 님이 2013년 3월 18일 질문

2개의 답변

0 추천
혹 파일 저장하는 장소에 퍼미션 설정 안하신거 아닌가요?
aucd29 (218,390 포인트) 님이 2013년 3월 18일 답변
퍼미션은 설정되어있습니다.

POST값이 아닌 테스트를 위해 그냥 변수를 저장하면 잘 저장이 되더라구요
0 추천
저도 php 와 통신을 많이 하지만, 제가 만든 모듈로만 하는 지라.
제가 좀 모자란 부분이 많지만, 눈에 보이는 저와 다른 점은, httpconnection.java 에서  entity 세팅하는 부분에
string entity를 설정하시는데, post 변수명이 지정 안 되신 것 같아요.
php 에서 json으로 받으시는데 ... entity 부분에 내용만 쓰지 json이란 변수가 없는 거 같다는...
음.. 타입을 application/json으로 주고 entity에 그냥 적으면 json으로 받을 수 있는 건지... 그부분에 대한
지식이 없어서 모르겠지만, 최소한 제가 아는 범위 안에서는 entity 설정에 json에 str 내용을 담아 주셔야해요.

ArrayList<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("json", str));

try {
   entity = new UrlEncodedFormEntity(params, UTF-8);
   
  } catch (final UnsupportedEncodingException e) {
       throw new AssertionError(e);

  }

 httpPost.setEntity(entity);

저는 이런 식으로 entity를 세팅합니다. "json" 부분이 php $_POST['json'] 부분과 변수 명이 일치해야합니다.
음.. 기억은 잘 안 나지만, php 에서 요청의 바디 부분을 다 받아 출력하는 함수도 있던 거 같은데... php가 전공이
아닌지라. ㅎ
도움이 되었으면 좋겠네요... 저도 짧은 지식인지라... 잘 못된 대답일지도 모르겠네요 ㅎ
헤브리아 (360 포인트) 님이 2013년 3월 19일 답변
...