• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >Android > [android] 与PHP的session进行交互demo,androidsession

[android] 与PHP的session进行交互demo,androidsession

作者:网友 字体:[增加 减小] 来源:互联网 时间:2017-05-26

网友通过本文主要向大家介绍了android session,android session保持,android mediasession,android有session吗,demo session等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

[android] 与PHP的session进行交互demo,androidsession


从MainActivity跳转到MailIndexActivity,第一个请求接口设置session,第二个activity请求接口获取session

java代码中获取header头里面的Set-Cookie

请求的时候,设置头信息Cookie,就可以相当于浏览器获取session

 

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/test.php";
    public LoginHandler loginHandler;
    public String sessionIdString;
    @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();
                
                String responseCookie = http.getHeaderField("Set-Cookie");
                if (responseCookie != null) {
                   sessionIdString = responseCookie.substring(0, responseCookie.indexOf(";"));
                }
                
                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);
            intent.putExtra("PHPSESSIONID",sessionIdString);  
            startActivity(intent);
        }
    }
}

MailIndexActivity.java

package com.tsh.test;

import java.io.InputStream;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
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.widget.Toast;

public class MailIndexActivity extends Activity {
    public static String API="http://mail.sina.net/test.php";
    public Handler sessionHandler;
    public String sessionIdString;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        
        Intent intent = getIntent();  
        sessionIdString= intent.getStringExtra("PHPSESSIONID"); 
        
        setContentView(R.layout.mail_index);
        sessionHandler=new SessionHandler();
        Thread sessionThread=new Thread(new SessionRunable());
        sessionThread.start();
        
        
    }
    class SessionRunable implements Runnable{

        @Override
        public void run() {
            URL url;
            try {
                url = new URL(API);
                HttpURLConnection http=(HttpURLConnection) url.openConnection();
                http.setRequestProperty("Cookie", se



 
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • [android] 与PHP的session进行交互demo,androidsession

相关文章

  • 2017-05-26showSetPwdDialog--自定义对话框,showsetpwddialog--
  • 2017-05-26Android项目从Eclipse增加支持Android Studio
  • 2017-05-26仿拉手团购App9-- 产品详情界面,团购app9--
  • 2017-05-26Android handler 详解(面试百分之100问到),androidhandler
  • 2017-05-26nagios二次开发之“依据分组绘制服务图”
  • 2017-05-26Form and Control KeyEvent
  • 2017-05-26Mac Android studio提交本地项目到Github 已经配置 SSH KEY
  • 2017-05-26Android-BroadcastReceiver详解
  • 2017-05-26DB2_Tips_Tricks_04 远程数据库之间复制数据
  • 2017-05-26android:Activity数据传递之静态变量

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 【原创】Android ExpandableListView使用,expandablelistview
    • HTTP 首部字段详细介绍,首部字段详细介绍
    • 【开源】二维码签到手机andriod版下载!,开源签到andriod
    • Android--用intent打开各种文件
    • Andriod DiskLruCache的使用案例
    • Android之Activity系列总结(一)--Activity概览,android--activity
    • 安卓界面基本组件------计时器,安卓------计时器
    • Android中通信协议,Android通信协议
    • Android设备上获取照片、裁剪图片、压缩图片
    • WebView的使用,WebView使用

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有