2013-12-09 4 views
0

다음은 localhost 서버의 MySQl 데이터베이스에 데이터를 전송하기위한 Java 코드입니다. 사용 된 스크립트 언어 은 PHP입니다. PHP 코드가 제대로 작동하고 브라우저를 통해 을 사용하면 값이 삽입됩니다. 의사 소통에 오류가 있다고 느낍니다. 하지만 난 디버그 수 없습니다. 도와주세요.데이터베이스에 값을 전달할 수 없습니다.

package com.example.databasetest1; 

    import java.io.IOException; 
    import java.util.ArrayList; 
    import java.util.List; 

    import org.apache.http.NameValuePair; 
    import org.apache.http.client.ClientProtocolException; 
    import org.apache.http.client.HttpClient; 
    import org.apache.http.client.entity.UrlEncodedFormEntity; 
    import org.apache.http.client.methods.HttpPost; 
    import org.apache.http.impl.client.DefaultHttpClient; 
    import org.apache.http.message.BasicNameValuePair; 

    import android.os.Bundle; 
    import android.app.Activity; 
    import android.view.Menu; 
    import android.view.View; 
    import android.widget.Button; 
    import android.widget.EditText; 

    public class MainActivity extends Activity { 
    Button Enter; 
    EditText tName; 
    String sName; 
     @Override 
     protected void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.activity_main); 

      Enter = (Button) findViewById(R.id.bEnter); 
      tName =(EditText)findViewById(R.id.etName); 
      sName=tName.getText().toString(); 
      Enter.setOnClickListener(new View.OnClickListener() { 


       @Override 
       public void onClick(View v) { 
        // TODO Auto-generated method stub 
        try { 
         HttpClient httpClient = new   DefaultHttpClient(); 
         List<NameValuePair> nameValuePair=new ArrayList<NameValuePair>(1); 
         nameValuePair.add(new BasicNameValuePair("Name",sName)); 
         HttpPost httpPost = new HttpPost("http://192.168.173.1/try_database/name_insert.php"); 
         httpPost.setEntity(new UrlEncodedFormEntity(nameValuePair)); 
         httpClient.execute(httpPost); 
      } catch (ClientProtocolException e1) { 
         // TODO Auto-generated catch block 
         e1.printStackTrace(); 
      } catch (IOException e2) { 
       // TODO Auto-generated catch block 
       e2.printStackTrace(); 
      } 
     } 
    }); 

     } 
     /*public void insert() throws ClientProtocolException, IOException 
     { 
      HttpClient httpClient = new DefaultHttpClient(); 
      List<NameValuePair> nameValuePair=new ArrayList<NameValuePair>(1); 
      nameValuePair.add(new BasicNameValuePair("Name",sName)); 
      HttpPost httpPost = new HttpPost("http://192.168.173.1/try_database/name_insert.php"); 
      httpPost.setEntity(new UrlEncodedFormEntity(nameValuePair)); 
      httpClient.execute(httpPost); 
}*/ 

     @Override 
     public boolean onCreateOptionsMenu(Menu menu) { 
      // Inflate the menu; this adds items to the action bar if it is present. 
      getMenuInflater().inflate(R.menu.main, menu); 
      return true; 
     } 

    } 
+0

'의사 소통에 오류가 있다고 느낍니다. ' 오류가 발생하면 오류 메시지를 게시하십시오. –

+0

코드를 비동기로 이동하고 발생한 오류를 알려주십시오. 감사 – nik

답변

0

허용되지 않는 UI 스레드에서 n/w 입출력을 수행하고 있습니다. 별도의 스레드에서 수행하십시오.

0

Network 실행은 UIThread에 있으며, 이는 진저 진 후 장치에서 예외가 NetworkOnMainThreadException 일 것입니다. onClick 코드를 AsyncTask

1

코드로 이동해야합니다. 에 대한 this 자습서를 확인하십시오. AsyncTask 클래스를 사용하여 네트워크 관련 작업을 수행하는 방법을 명확하게 설명했습니다. 연결을 설정하는

When, why and how to use async task ?

관련 문제