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

아..오늘은..httpclient.질문이네요 ㅠㅠ

0 추천
JSONObject userdata = new JSONObject();
        userdata.put("userdata_id", et_userid.getText().toString());
       userdata.put("userdata_password", et_password.getText().toString());
       userdata.put("userdata_type", companytype);
       Log.d("--", companytype);
       String url = "http://wizcompany.com/gbid/app/dataset/userjoin.php";
       dbutils = new DButil(url, handler, userdata);
       dbutils.start();

액티비티에서 이렇게 값을 넘겨줍니다.. jsonobject루요..

 

public DButil(String url , Handler handler, JSONObject params) {
  // TODO Auto-generated constructor stub
  super();
  this.url = url;
  this.mhandler = handler;
  this.params = params;
 }


@Override
 public void run() {
  // TODO Auto-generated method stub
  super.run();
  /*
   Message msg = mhandler.obtainMessage();
   msg.arg1 = 1;
   mhandler.sendMessage(msg);
   */
  HttpClient httpclient = new DefaultHttpClient();
  HttpPost httppost = new HttpPost(this.url);
  try{
   
   List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
   nameValuePairs.add(new BasicNameValuePair("params", this.params.toString()));
   httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
   HttpResponse response = httpclient.execute(httppost);
   
   HttpEntity entity = response.getEntity();
   
   if(entity != null){
    String res = EntityUtils.toString(entity);
    Log.d("--", res);
   }
   
   
  }catch (Exception e) {
   // TODO: handle exception
   Log.d("Errorlog", "ItemDataLoad.class : run = " + e.getMessage());
  }
 }

이곳이.. jsonobject 전송해주는 부분이구요..

 

<? include "../../../gbid/gbidindex.php"; ?>
<?

 if(!$db) echo "Error01";
 else{
 
  $strText = json_decode(stripslashes($_REQUEST['params'])); 
  $strmarketid = $strText->userdata_id;
  $strmarketname = $strText->userdata_password;
  $strcompanyname = $strText->companyname;
  $strstartdate = $strText->userdata_type;

  $sql = "INSERT INTO GBID_License_userinfo ( `idx` , `userdata_id` , `userdata_password` , `companyname` , `userdata_type` , `userdata_date`) ".
      "VALUES (null , '$userdata_id' , '$userdata_password' , '$companyname' , '$userdata_type' ,2013-04-01)";

  $rs = mysql_query($sql,$conn);

   if($rs) $resultTxt = "true";
   else $resultTxt = "Member Infomation Registor Fail";

  mysql_close($conn);

  echo $strText->userdata_id;
  
 }
?>	

이게.. 서버에잇는.. php구문입니다..

 

ㅠㅠ 제 생각엔..이상없이 되야..하는것같은데..ㅜㅜ

도와주세요 고수님들 흐엉 ㅜㅜ 값이 계속 null이 나오네요 ㅜㅜ
 

Log.d("--", res); 이쪽으로 들어오질 않아여 ㅜㅜ 전송이 잘못된건가요?ㅜㅜ

 

mamongs (4,050 포인트) 님이 2013년 4월 1일 질문

2개의 답변

0 추천

1. java 코드는 이상 없어 보입니다. 

2. php 코드도 크게 문제는 없는데 db 에 데이터 를 넣는 부분이 이상하군요 정리가 제대로 안된것 같은데 우선은 서버쪽 부터 정리 하세요 html 로 폼 하나 만들어 놓고 데이터를 전달해서 값이 제대로 오는지 부터 확인하기 바랍니다.

 

예)

<form method="post" action="경로" name="frm_write" enctype="multipart/form-data" style="border:0;margin:0">
  <textarea name="params" wrap="VIRTUAL" style="width:100%;height:200px;">
  {
  "id":5,
  "data":"data111111111111"
  }
  </textarea>

  <input type="submit" value="  입 력  " />
  </form>

 

aucd29 (218,390 포인트) 님이 2013년 4월 2일 답변
0 추천

일단 의심되는 부분은..상호간 캐릭터셋 같습니다.

httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));

-> httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs), HTTP.UTF_8)위와같이 변경해보세요.

클라이언트가 이상없이 파라메터를 전송했다면 서버사이드에서 디버깅을 해보셔야겠네요.

다이군 (560 포인트) 님이 2013년 4월 2일 답변
...