dtuqxb3884 2016-05-12 09:04
浏览 344

android HTTP post发送数据的问题

i want to pass data from android to web through http post.i have try but when i click on send button it does not show on the web help me to solve my problem. here is the main activity code.

public class HttpPostExample extends Activity {

    TextView content;
    EditText fname,email,login,pass;
    String Name,Email,Login,Pass; 

    /** Called when the activity is first created. */ 
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_http_post_example);

        content = (TextView)findViewById(R.id.content);
        fname   =(EditText)findViewById(R.id.name);
        email   =(EditText)findViewById(R.id.email);
        login   =(EditText)findViewById(R.id.loginname);
        pass    =(EditText)findViewById(R.id.password);


        Button saveme=(Button)findViewById(R.id.save);
        saveme.setOnClickListener(new Button.OnClickListener(){
            public void onClick(View v)
            {
                try{

                   GetText();
                 }
                catch(Exception ex)
                 {
                    content.setText("url exeption!");    
                 }
            }
        });  
    }


    public void GetText() throws UnsupportedEncodingException
    {

        Name    = fname.getText().toString();
        Email   = email.getText().toString();
        Login   = login.getText().toString();
        Pass    = pass.getText().toString();



          String data = URLEncoder.encode("name", "UTF-8") + "=" + URLEncoder.encode(Name, "UTF-8"); 
          data += "&" + URLEncoder.encode("email", "UTF-8") + "=" + URLEncoder.encode(Email, "UTF-8"); 
          data += "&" + URLEncoder.encode("user", "UTF-8") + "=" + URLEncoder.encode(Login, "UTF-8");
          data += "&" + URLEncoder.encode("pass", "UTF-8") + "=" + URLEncoder.encode(Pass, "UTF-8");

          String text = "";
          BufferedReader reader=null;
          // Send data 
        try
        { 

            URL url = new URL("http://androidexample.com/localhost/web/Httppost.php");

          URLConnection conn = url.openConnection(); 
          conn.setDoOutput(true); 
          OutputStreamWriter wr = new OutputStreamWriter(conn.getOutputStream()); 
          wr.write(data); 
          wr.flush(); 
       // Get the response 


        reader = new BufferedReader(new InputStreamReader(conn.getInputStream()));
        StringBuilder sb = new StringBuilder();
        String line = null;


            while((line = reader.readLine()) != null)
            {
                sb.append(line + "
");
            }
            text = sb.toString();
        }
        catch(Exception ex)
        {

        }
        finally
        {
            try
            {

                reader.close();
            }
            catch(Exception ex) {}
        }

        content.setText(text);

    }

}

here main xml code.

    *<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
 android:layout_width="wrap_content"   
    android:layout_height="wrap_content"
        android:stretchColumns="*" android:background="#ffffff">


     <TableRow android:background="#758AA7" android:layout_margin="2dip">
           <TextView android:id="@+id/output"
            android:layout_height="wrap_content"
            android:padding="1px"
            android:text="@string/default_output" android:layout_width="wrap_content" />
           <TextView android:id="@+id/content"
            android:layout_height="wrap_content"
            android:padding="2px"
            android:text="@string/default_content" android:layout_width="fill_parent" />
     </TableRow>
     <TableRow android:background="#758AA7" android:layout_margin="2dip">

        <Button android:text="Save On Web"
        android:id="@+id/save"
        android:layout_width="wrap_content" 
        android:layout_gravity="center" 
         />
        </TableRow>

     <TableRow android:background="#ffffff" android:layout_margin="2dip">

        <TextView style="@style/CodeFont"
         android:text="@string/Name"   android:layout_width="30px" android:layout_gravity="left"/>
        <EditText android:id="@+id/name" 
        android:layout_width="wrap_content"
             android:gravity="left" android:layout_gravity="left"  android:width="210px"/>
    </TableRow>
     <TableRow android:background="#ffffff" android:layout_margin="2dip">

        <TextView style="@style/CodeFont"
         android:text="@string/Email"   android:layout_gravity="left"/>
        <EditText android:id="@+id/email" 
         android:layout_width="wrap_content" android:layout_gravity="left" android:width="210px"/>
    </TableRow>
     <TableRow android:background="#ffffff" android:layout_margin="2dip">

        <TextView style="@style/CodeFont"
         android:text="@string/LoginName"   android:layout_gravity="left"/>
        <EditText android:id="@+id/loginname" 
         android:layout_width="wrap_content" android:layout_gravity="left" android:width="210px"/>
    </TableRow>
     <TableRow android:background="#ffffff" android:layout_margin="2dip">

        <TextView style="@style/CodeFont"
         android:text="@string/Password"   android:layout_gravity="left"/>
        <EditText android:id="@+id/password" 
         android:layout_width="wrap_content" android:layout_gravity="left" android:width="210px"/>
    </TableRow>
</TableLayout>*   

this is my php script Httppost.php

  <?php 

       $name   = urldecode($_POST['name']);
       $user   = urldecode($_POST['user']);
       $email  = urldecode($_POST['email']);
       $pass   = urldecode($_POST['pass']);

       print " ==== POST DATA =====
       Name  : $name
       Email : $email
       User  : $user
       Pass  : $pass"; 

 ?>

When i click on save on web it does not show on the web.

  • 写回答

1条回答 默认 最新

  • doujun7161 2016-05-12 09:08
    关注

    Change httpurlconnection code to run in background thread to solve your issue. If you execute in MAinthread you get networkonMAinThreadException in honeycomb onwards

    评论

报告相同问题?

悬赏问题

  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog