本文使用okHttp+Jsoup,所需要的JAR请自行在网上下载,添加JAR的方式,参见http://blog.youkuaiyun.com/ervincm/article/details/67821256
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
public class LoginActivity extends Activity {
private ImageView checkCodePicture;
private OkHttpClient client;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.login_main);
initView();
loadingCaptchaPic();
}
public void initView() {
Log.i(TAG, "初始化视图控件");
;
checkCodePicture=(ImageView) findViewById(R.id.checkCode_picture);
}
public void loadingCaptchaPic() {
client=new OkHttpClient();
//加载验证码图片代码
new Thread(new Runnable() {
String src;
Bitmap captchaPic;
@Override
public void run() {
try{
//http使用get方式获得返回的html代码
Request request = new Request.Builder()
.url("http://hdhome.org/login.php")
.build();
Response response = client.newCall(request).execute();
String responseData = response.body().string();//返回的内容
//jsoup解析,从而得到动态验证码的url地址
Document parse = Jsoup.parse(responseData);
Elements select = parse.select("img[alt=CAPTCHA]");
Element element = select.get(0);
src = element.attr("src");
String imagehash = src.substring(36);
System.out.println("imagehash"+src);
//get方式请求验证码url地址,得到返回验证码图片文件
request = new Request.Builder()
.url("http://hdhome.org/"+src)
.build();
response = client.newCall(request).execute();
InputStream is = response.body().byteStream();
captchaPic = BitmapFactory.decodeStream(is);
checkCodePicture.post(new Runnable() {
@Override
public void run() {
checkCodePicture.setImageBitmap(captchaPic);
}
});
}catch(Exception e){
e.printStackTrace();
}
}
}).start();
}
}