login与服务器交换数据
来源:互联网 发布:反监听软件 编辑:程序博客网 时间:2024/06/11 12:57
package com.jacky.logintest;import android.content.SharedPreferences;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.text.TextUtils;import android.view.View;import android.widget.CheckBox;import android.widget.EditText;import android.widget.Toast;import java.io.InputStream;import java.net.HttpURLConnection;import java.net.URL;public class MainActivity extends AppCompatActivity { private EditText ed_name; private EditText ed_pass; private CheckBox ck_box; private SharedPreferences sp; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ed_name = (EditText) findViewById(R.id.username); ed_pass = (EditText) findViewById(R.id.userpassword); // ck_box = (CheckBox) findViewById(R.id.checkbox); //显示保存的数据 } public void login(View v) { new Thread(){ @Override public void run() { super.run(); String name = ed_name.getText().toString().trim(); String pass = ed_pass.getText().toString().trim(); //组拼用户名和密码 String data="username="+name+"&password="+pass; if (TextUtils.isEmpty(name) || TextUtils.isEmpty(pass)) { Toast.makeText(MainActivity.this, "请输入用户名和密码!", Toast.LENGTH_LONG).show(); } else { try { //服务器访问的业务逻辑 String path="http://192.168.1.3:8080/login/LoginServlet"; URL url=new URL(path); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.setRequestMethod("POST"); conn.setReadTimeout(5000); //通过抓包得知post比get多两个包头信息 conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); conn.setRequestProperty("Content-Length", data.length() + ""); //设置一个标记,允许输出 conn.setDoOutput(true); conn.getOutputStream().write(data.getBytes()); int code = conn.getResponseCode(); if (code == 200) { InputStream in = conn.getInputStream(); String content = StreamTools.readStream(in); showToast(content); } else { showToast("登入失败!"); } } catch (Exception e) { e.printStackTrace(); } } } }.start(); } private void showToast(final String content) { runOnUiThread(new Runnable() { @Override public void run() { Toast.makeText(getApplicationContext(),content,Toast.LENGTH_LONG).show(); } }); }}
package com.jacky.logintest;import java.io.ByteArrayOutputStream;import java.io.InputStream;/** * 作者:Jacky * 邮箱:550997728@qq.com * 时间:2016/2/2 11:32 */public class StreamTools { //把一个inputStream装换成一个String public static String readStream(InputStream in) throws Exception{ //定义一个内存输出流 ByteArrayOutputStream baos = new ByteArrayOutputStream(); int len=-1; byte[] buffer=new byte[1024];//1kb while ((len=in.read(buffer))!=-1) { baos.write(buffer,0,len); } in.close(); String content=new String(baos.toByteArray()); return content; }}
0 0
- login与服务器交换数据
- nodejs客户端与服务器双向数据交换
- Android与与服务器交换数据、上传、下载、读取文件
- android与服务器进行json数据交换的工具类
- ROS下使用CURL与服务器数据交换
- ajax是浏览器与服务器的交换数据过程
- 与Lua交换数据
- 用Delphi建立通讯与数据交换服务器—Transceiver技术剖析(上)
- 用Delphi建立通讯与数据交换服务器—Transceiver技术剖析(下)
- 用Delphi建立通讯与数据交换服务器—Transceiver技术剖析(上)
- 用Delphi建立通讯与数据交换服务器—Transceiver技术剖析(下)
- 用Delphi建立通讯与数据交换服务器—Transceiver技术剖析(上)
- 用Delphi建立通讯与数据交换服务器—Transceiver技术剖析(下)
- 用Delphi建立通讯与数据交换服务器—Transceiver技术剖析(上)
- 用Delphi建立通讯与数据交换服务器—Transceiver技术剖析(上)
- 用Delphi建立通讯与数据交换服务器—Transceiver技术剖析(下)
- delphi 与 Excel数据交换
- 与Lua交换自定义数据
- LightOJ 1007 - Mathematically Hard (欧拉筛+预处理前缀和)
- GDB多线程调试方法
- 我的成长(五)--- Make it Possible
- knockoutjs四 foreach的绑定
- 【转载】不再纠结:从程序员的角度解读苹果为什么坚持使用1G内存
- login与服务器交换数据
- Java调用webservice出现System.NullReferenceException: 未将对象引用设置到对象的实例。
- MySQL管理工具---phpAdmin
- 数模搭配上春运(My First Blog)
- vector的用法
- Floyd's cycle-finding algorithm
- 数据结构之双向循环链表
- 使用Android-Pdf-Viewer-Library开源框架
- iOS 限制textField字节长度