![[android] 与PHP的session进行交互demo,第1张 [android] 与PHP的session进行交互demo,第1张](/aiimages/%5Bandroid%5D+%E4%B8%8EPHP%E7%9A%84session%E8%BF%9B%E8%A1%8C%E4%BA%A4%E4%BA%92demo.png)
从MainActivity跳转到MailindexActivity,第一个请求接口设置session,第二个activity请求接口获取session
java代码中获取header头里面的Set-cookie
请求的时候,设置头信息cookie,就可以相当于浏览器获取session
MainActivity.java
package com.tsh.test;import java.io.inputStream; java.io.OutputStream; java.io.PrintWriter; java.net.httpURLConnection; java.net.URL; androID.app.Activity; androID.content.Intent; androID.os.Bundle; androID.os.Handler; androID.os.Message; androID.vIEw.VIEw; androID.vIEw.VIEw.OnClickListener; androID.Widget.button; androID.Widget.TextVIEw; androID.Widget.Toast;public class MainActivity extends Activity { public button loginBtn; TextVIEw loginUsername; TextVIEw loginPassword; static String API="http://mail.sina.net/test.PHP"; LoginHandler loginHandler; 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 onClick(VIEw arg0) { 开启新线程 Thread loginThread=new Thread( LoginRunable()); loginThread.start(); } }); loginHandler= LoginHandler(); } 实现Runable接口,开启新线程 class LoginRunable implements Runnable{ @OverrIDe run() { try { URL url= URL(API); httpURLConnection http=(httpURLConnection) url.openConnection(); http.setRequestMethod("POST"); http.setDoinput(true); http.setDoOutput(); OutputStream ops=http.getoutputStream(); PrintWriter pw= 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= StringBuilder(); while((length=ins.read(buffer))!=-1){ sb.append(new String(buffer,0,length)); } Message msg= Message(); msg.what=1; msg.obj=sb.toString(); loginHandler.sendMessage(msg); } catch (Exception e) { Todo auto-generated catch block e.printstacktrace(); } } } 传递消息的handle class LoginHandler Handler{ @OverrIDe handleMessage(Message msg) { String loginResponse=(String) msg.obj; System.out.println(loginResponse); Toast.makeText(MainActivity.this,loginResponse,10).show(); Intent intent=new Intent(MainActivity.class); intent.putExtra("PHPSESSIONID" java.net.MalformedURLException;class MailindexActivity Handler sessionHandler; .onCreate(savedInstanceState); Intent intent = getIntent(); sessionIDString= intent.getStringExtra("PHPSESSIONID"); setContentVIEw(R.layout.mail_index); sessionHandler= SessionHandler(); Thread sessionThread= SessionRunable()); sessionThread.start(); } class SessionRunable Runnable{ @OverrIDe run() { URL url; { url = (httpURLConnection) url.openConnection(); http.setRequestProperty("cookie"sb.toString(); sessionHandler.sendMessage(msg); } (Exception e) { e.printstacktrace(); } } } class SessionHandler handleMessage(Message msg) { String str=(String) msg.obj; System.out.println("222"); System.out.println(str); Toast.makeText(MailindexActivity.).show(); } }}
PHP文件:
<?PHPsession_start();if(empty($_SESSION)){ echo "设置session"; $_SESSION['name']=1; echo session_ID();}else{ echo "获取session"; print_r(); }
总结
以上是内存溢出为你收集整理的[android] 与PHP的session进行交互demo全部内容,希望文章能够帮你解决[android] 与PHP的session进行交互demo所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)