[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/5368.html

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

相关推荐

发表回复

登录后才能评论