package com.example.jwcst;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import okhttp3.Call;
import okhttp3.Callback;
import okhttp3.Cookie;
import okhttp3.CookieJar;
import okhttp3.FormBody;
import okhttp3.HttpUrl;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
import android.app.Activity;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.provider.Settings.System;
import android.util.Base64;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;
public class Jwccx extends Activity{
ArrayList<ModelApplication>arrayList=new ArrayList<ModelApplication>();
ArrayList<String>arrayList2=new ArrayList<String>();
EditText edusrname;
EditText edpassword;
EditText edcode;
ModelApplication lModel;
ImageView imvcode;
Button btnlog;
Handler handler;
OkHttpClient httpClient;
ListView mylist;
String mainurl="http://42.247.3.125/jsxsd";
String codeurl="http://42.247.3.125/jsxsd/verifycode.servlet";
String postlogourl="http://42.247.3.125/jsxsd/xk/LoginToXk";
String cjcxstrString="http://42.247.3.125/jsxsd/kscj/cjcx_query?";
String cjliststr="http://42.247.3.125/jsxsd/kscj/cjcx_list";
private HashMap<String, List<Cookie>> cookieStore = new HashMap<String, List<Cookie>>();
public void geturlandCode()
{
//1url 2.code cookie
Request request=new Request.Builder().url(mainurl).build();
httpClient.newCall(request).enqueue(new Callback() {
@Override
public void onResponse(Call arg0, Response arg1) throws IOException {
// TODO Auto-generated method stub
httpClient=new OkHttpClient.Builder().cookieJar(new CookieJar() {
@Override
public void saveFromResponse(HttpUrl httpUrl, List<Cookie> list) {
// TODO Auto-generated method stub
cookieStore.put(httpUrl.host(), list);
}
@Override
public List<Cookie> loadForRequest(HttpUrl httpUrl) {
// TODO Auto-generated method stub
List<Cookie> cookies = cookieStore.get(httpUrl.host());
// for (int i = 0; i < cookieStore .size(); i++) {
// Log.e("cookieStore ", cookieStore .get(i).toString());
// }
return cookies != null ? cookies : new ArrayList<Cookie>();
}
}).build();
Request request2=new Request.Builder().url(codeurl).build();
Response response2=httpClient.newCall(request2).execute();
byte[] picbytes= response2.body().bytes();
Message msg=handler.obtainMessage();
msg.what=1;
msg.obj=picbytes;
handler.sendMessage(msg);
}
@Override
public void onFailure(Call arg0, IOException arg1) {
// TODO Auto-generated method stub
}
});
}
public void chaxuncj()
{
Request request=new Request.Builder().url(cjcxstrString).build();
httpClient=new OkHttpClient.Builder().cookieJar(new CookieJar() {
@Override
public void saveFromResponse(HttpUrl httpUrl, List<Cookie> list) {
// TODO Auto-generated method stub
cookieStore.put(httpUrl.host(), list);
}
@Override
public List<Cookie> loadForRequest(HttpUrl httpUrl) {
// TODO Auto-generated method stub
List<Cookie> cookies = cookieStore.get(httpUrl.host());
//
return cookies != null ? cookies : new ArrayList<Cookie>();
}
}).build();
httpClient.newCall(request).enqueue(new Callback() {
@Override
public void onResponse(Call arg0, Response arg1) throws IOException {
// TODO Auto-generated method stub
Request request2=new Request.Builder().url(cjliststr).build();
httpClient=new OkHttpClient.Builder().cookieJar(new CookieJar() {
@Override
public void saveFromResponse(HttpUrl httpUrl, List<Cookie> list) {
// TODO Auto-generated method stub
cookieStore.put(httpUrl.host(), list);
}
@Override
public List<Cookie> loadForRequest(HttpUrl httpUrl) {
// TODO Auto-generated method stub
List<Cookie> cookies = cookieStore.get(httpUrl.host());
//
return cookies != null ? cookies : new ArrayList<Cookie>();
}
}).build();
String cjlist= httpClient.newCall(request2).execute().body().string().toString();
//System.out.println(cjlist);
String regEx1="<td align=\"left\">(.*?)</td>";
Pattern p1=Pattern.compile(regEx1, Pattern.CASE_INSENSITIVE | Pattern.DOTALL);
String regEx2="700,500\\)\">(.*?)</a> -->";
Pattern p2=Pattern.compile(regEx2, Pattern.CASE_INSENSITIVE | Pattern.DOTALL);
Matcher m1=p1.matcher(cjlist);
Matcher m2=p2.matcher(cjlist);
int i=1;
String kc=null;
String kcmc=null;
String score=null;
while(m1.find())
{
Log.e("dsfddsf", m1.group(1));
if(i%2==0) {
if(m2.find())
{ kcmc=m1.group(1);
arrayList2.add(kcmc);
Log.e("dsfddsf", m2.group(1));
score=m2.group();
ModelApplication lModel=new ModelApplication(kc, kcmc, score);
arrayList.add(lModel);
arrayList2.add(score);
} else {
}
}
else {
kc=m1.group(1);
arrayList2.add(kc);
}
i++;
}
Message msg=handler.obtainMessage();
msg.what=3;
handler.sendMessage(msg);
}
@Override
public void onFailure(Call arg0, IOException arg1) {
// TODO Auto-generated method stub
}
});
}
public void onpostpwd()
{
String users=Base64.encodeToString(edusrname.getText().toString().trim().getBytes(), Base64.DEFAULT);
String pwd=Base64.encodeToString(edpassword.getText().toString().trim().getBytes(), Base64.DEFAULT);
String code= edcode.getText().toString();
FormBody.Builder builder = new FormBody.Builder();
builder.add("encoded", users+"%%%"+pwd);
builder.add("RANDOMCODE", code);
FormBody formBody = builder.build();
Request request=new Request.Builder().post(formBody).url(postlogourl).build();
httpClient=new OkHttpClient.Builder().cookieJar(new CookieJar() {
@Override
public void saveFromResponse(HttpUrl httpUrl, List<Cookie> list) {
// TODO Auto-generated method stub
cookieStore.put(httpUrl.host(), list);
}
@Override
public List<Cookie> loadForRequest(HttpUrl httpUrl) {
// TODO Auto-generated method stub
List<Cookie> cookies = cookieStore.get(httpUrl.host());
// for (int i = 0; i < cookieStore .size(); i++) {
// Log.e("cookieStore ", cookieStore .get(i).toString());
// }
return cookies != null ? cookies : new ArrayList<Cookie>();
}
}).build();
httpClient.newCall(request).enqueue(new Callback() {
@Override
public void onResponse(Call arg0, Response response) throws IOException {
// TODO Auto-generated method stub
String postresponceString= response.body().string().toString();
//Log.e("responce==", postresponceString);
int pos=postresponceString.indexOf("學生個人中心", 0);
if (pos==-1)
{ Log.e("賬號或密碼錯誤", "登陸失敗");
} else {
{ Log.e("登陸成功", "111111111111");
Message msg=handler.obtainMessage();
msg.what=2;
handler.sendMessage(msg);
// Intent intent=new Intent(Jwccx.this,cxactivity.class);
// startActivity(intent);
//
}
}
}
@Override
public void onFailure(Call arg0, IOException arg1) {
// TODO Auto-generated method stub
}
});
}
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_jwccx);
edusrname=(EditText) findViewById(R.id.useredit);
edpassword=(EditText) findViewById(R.id.pwsedit);
edcode=(EditText) findViewById(R.id.codeedit);
imvcode=(ImageView) findViewById(R.id.imagecode);
btnlog=(Button) findViewById(R.id.btnlogin);
imvcode.setVisibility(View.INVISIBLE);
handler=new Handler(){
@Override
public void handleMessage(Message msg) {
// TODO Auto-generated method stub
super.handleMessage(msg);
switch (msg.what) {
case 1:
byte[] picbytes=(byte[]) msg.obj;
Bitmap picBitmap= BitmapFactory.decodeByteArray(picbytes, 0, picbytes.length);
imvcode.setImageBitmap(picBitmap);
imvcode.setVisibility(View.VISIBLE);
break;
case 2:
chaxuncj();
break;
case 3:
//xianshi();
EditText textView=new EditText(Jwccx.this);
textView.setHeight(350);
textView.setWidth(400);
for (int i = 0; i < arrayList.size(); i++) {
Log.e("user", arrayList.get(i).getKc()+arrayList.get(i).getKcmc()+arrayList.get(i).getScore());
textView.setText(textView.getText()+arrayList.get(i).getKc()+arrayList.get(i).getKcmc()+arrayList.get(i).getScore());
}
Intent intent=new Intent(Jwccx.this,chaxunactivity.class);
startActivity(intent);
default:
break;
}
}
// private void xianshi() {
// // TODO Auto-generated method stub
// edusrname.setVisibility(View.INVISIBLE);
// edpassword.setVisibility(View.INVISIBLE);
//
// edcode.setVisibility(View.INVISIBLE);
// imvcode.setVisibility(View.INVISIBLE);
// btnlog.setVisibility(View.INVISIBLE);
// EditText editText=new EditText(Jwccx.this);
// editText.setText(arrayList.toString());
//
// }
};
httpClient=new OkHttpClient();
geturlandCode();
btnlog.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
onpostpwd();
}
uj5u.com熱心網友回復:
補充 我?跳轉 到第二個界面用litsview來顯示 !uj5u.com熱心網友回復:
代碼我就不多做吐槽了。根據你的問題,list<>尖括號里面的物件(貌似是ModelApplication)需要 implements Serializable
跳轉的時候加個intent.putExtra("listData",list)
等跳轉過來后的Activity
List<xxx> list = (List<xxx>) getIntent().getSerializableExtra("listData");
就行了
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/75611.html
標籤:Android
