[android] post请求接口demo测试代码详解手机开发

MainActivity.java

package com.tsh.test; 
 
import java.io.InputStream; 
import java.io.OutputStream; 
import java.io.PrintWriter; 
import java.net.HttpURLConnection; 
import java.net.URL; 
 
import android.app.Activity; 
import android.content.Intent; 
import android.os.Bundle; 
import android.os.Handler; 
import android.os.Message; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.Button; 
import android.widget.TextView; 
import android.widget.Toast; 
 
public class MainActivity extends Activity { 
    public Button loginBtn; 
    public TextView loginUserName; 
    public TextView loginPassword; 
    public static String API="http://mail.sina.net/loginxxx"; 
    public LoginHandler loginHandler; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState); 
        setContentView(R.layout.activity_main); 
        //获取View对象 
        loginBtn=(Button) findViewById(R.id.loginBtn); 
        loginUserName=(TextView) findViewById(R.id.loginUsername); 
        loginPassword=(TextView) findViewById(R.id.loginPassword); 
        //给View对象设置点击事件 
        loginBtn.setOnClickListener(new OnClickListener() { 
            @Override 
            public void onClick(View arg0) { 
                //开启新线程 
                Thread loginThread=new Thread(new LoginRunable()); 
                loginThread.start(); 
            } 
        }); 
        loginHandler=new LoginHandler(); 
    } 
    //实现Runable接口,开启新线程 
    class LoginRunable implements Runnable{ 
        @Override 
        public void run() { 
            try { 
                URL url=new URL(API); 
                HttpURLConnection http=(HttpURLConnection) url.openConnection(); 
                http.setRequestMethod("POST"); 
                http.setDoInput(true); 
                http.setDoOutput(true); 
                OutputStream ops=http.getOutputStream(); 
                PrintWriter pw=new PrintWriter(ops); 
                String username=loginUserName.getText().toString(); 
                String password=loginPassword.getText().toString(); 
                pw.write("email="+username+"&psw="+password+"&loginfrom=app&output=json"); 
                pw.flush(); 
                 
                InputStream ins=http.getInputStream(); 
                byte[] buffer = new byte[1024]; 
                int length=0; 
                StringBuilder sb=new StringBuilder(); 
                while((length=ins.read(buffer))!=-1){ 
                    sb.append(new String(buffer,0,length)); 
                } 
                 
                Message msg=new Message(); 
                msg.what=1; 
                msg.obj=sb.toString(); 
                loginHandler.sendMessage(msg); 
            } catch (Exception e) { 
                // TODO Auto-generated catch block 
                e.printStackTrace(); 
            } 
             
        } 
    } 
    //传递消息的handle 
    class LoginHandler extends Handler{ 
        @Override 
        public void handleMessage(Message msg) { 
            String loginResponse=(String) msg.obj; 
            System.out.println(loginResponse); 
            Toast.makeText(MainActivity.this, loginResponse, 10).show(); 
            Intent intent=new Intent(MainActivity.this, MailIndexActivity.class); 
            //startActivity(intent); 
        } 
    } 
}

main_activity.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" 
    tools:context="${relativePackage}.${activityClass}" > 
 
    <TextView 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:text="用户名" /> 
    <EditText  
        android:hint="请输入用户名" 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" 
        android:id="@+id/loginUsername" 
        android:text="[email protected]" 
        /> 
    <TextView 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:text="密码"/> 
    <EditText  
        android:hint="请输入密码" 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" 
        android:id="@+id/loginPassword" 
        android:text="xxxxxxx"/> 
    <Button  
        android:id="@+id/loginBtn" 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" 
        android:text="登陆认证" 
        /> 
</LinearLayout>

 

原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/tech/app/5368.html

(0)
上一篇 2021年7月16日 23:46
下一篇 2021年7月16日 23:46

相关推荐

发表回复

登录后才能评论