android post请求接口demo

作者:简简单单 2017-03-28

MainActivity.java

 代码如下 复制代码

packagecom.tsh.test;

 

importjava.io.InputStream;

importjava.io.OutputStream;

importjava.io.PrintWriter;

importjava.net.HttpURLConnection;

importjava.net.URL;

 

importandroid.app.Activity;

importandroid.content.Intent;

importandroid.os.Bundle;

importandroid.os.Handler;

importandroid.os.Message;

importandroid.view.View;

importandroid.view.View.OnClickListener;

importandroid.widget.Button;

importandroid.widget.TextView;

importandroid.widget.Toast;

 

publicclassMainActivityextendsActivity {

 publicButton loginBtn;

 publicTextView loginUserName;

 publicTextView loginPassword;

 publicstaticString API="http://mail.sina.net/loginxxx";

 publicLoginHandler loginHandler;

 @Override

 protectedvoidonCreate(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(newOnClickListener() {

   @Override

   publicvoidonClick(View arg0) {

    //开启新线程

    Thread loginThread=newThread(newLoginRunable());

    loginThread.start();

   }

  });

  loginHandler=newLoginHandler();

 }

 //实现Runable接口,开启新线程

 classLoginRunableimplementsRunnable{

  @Override

  publicvoidrun() {

   try{

    URL url=newURL(API);

    HttpURLConnection http=(HttpURLConnection) url.openConnection();

    http.setRequestMethod("POST");

    http.setDoInput(true);

    http.setDoOutput(true);

    OutputStream ops=http.getOutputStream();

    PrintWriter pw=newPrintWriter(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 =newbyte[1024];

    intlength=0;

    StringBuilder sb=newStringBuilder();

    while((length=ins.read(buffer))!=-1){

     sb.append(newString(buffer,0,length));

    }

     

    Message msg=newMessage();

    msg.what=1;

    msg.obj=sb.toString();

    loginHandler.sendMessage(msg);

   }catch(Exception e) {

    // TODO Auto-generated catch block

    e.printStackTrace();

   }

    

  }

 }

 //传递消息的handle

 classLoginHandlerextendsHandler{

  @Override

  publicvoidhandleMessage(Message msg) {

   String loginResponse=(String) msg.obj;

   System.out.println(loginResponse);

   Toast.makeText(MainActivity.this, loginResponse,10).show();

   Intent intent=newIntent(MainActivity.this, MailIndexActivity.class);

   //startActivity(intent);

  }

 }

}

main_activity.xml

 代码如下 复制代码

 xmlns:tools="http://schemas.android.com/tools"

 android:layout_width="match_parent"

 android:layout_height="match_parent"

 android:orientation="vertical"

 tools:context="${relativePackage}.${activityClass}">

 

 

  android:layout_width="wrap_content"

  android:layout_height="wrap_content"

  android:text="用户名"/>

 

  android:hint="请输入用户名"

  android:layout_width="match_parent"

  android:layout_height="wrap_content"

  android:id="@+id/loginUsername"

  android:text="shihan@appdev.sinanet.com"

  />

 

  android:layout_width="wrap_content"

  android:layout_height="wrap_content"

  android:text="密码"/>

 

  android:hint="请输入密码"

  android:layout_width="match_parent"

  android:layout_height="wrap_content"

  android:id="@+id/loginPassword"

  android:text="xxxxxxx"/>

 

  android:id="@+id/loginBtn"

  android:layout_width="match_parent"

  android:layout_height="wrap_content"

  android:text="登陆认证"

  />

相关文章

精彩推荐