All Downloads are FREE. Search and download functionalities are using the official Maven repository.

net.sf.weixinmp.http.dialog.base.GetSessionRequest Maven / Gradle / Ivy

The newest version!
package net.sf.weixinmp.http.dialog.base;

import net.sf.weixinmp.http.WeixinmpHttpRequest;
import net.sf.weixinmp.http.dialog.base.support.OperationAdapter;
import net.sf.weixinmp.http.dialog.base.support.Operations;
import net.sf.weixinmp.http.dialog.base.support.WebSecuritys;
import net.sf.weixinmp.http.dialog.base.support.WebSession;
import net.sf.weixinmp.http.dialog.base.support.htmlunit.IdentityUnit;
import net.sf.weixinmp.http.dialog.base.support.htmlunit.WeixinmpWebSession;
import net.sf.weixinmp.model.AccessToken;

/**
 * http和saas保持一致的API封装风格。saas中是用appid+appsecert来换取token,每次使用token
 * 来调用saasapi。通过http来hack的api也类似,用一组用户米密码来换取一个服务器上的sessionid,
 * 后面每次都是用sessionid来执行业务逻辑。
 * 
 * 
 * 此类和@see
 * net.sf.weixinmp.saas.dialog.base.GetAccessTokenRequest类似,模拟用户登录,换取sessionid,
 * 把sessionid封装为一个@see
 * net.sf.weixinmp.model.AccessToken模型,其中session的超时时间只能更具weixin 平台来推测。
 * http和weixin提供的saas一样
 * 
 * @author Alex
 *
 */
public class GetSessionRequest extends WeixinmpHttpRequest {

	public AccessToken execute(String username, String password) {
		final WebSession webSession = super.getWebSession(WebSecuritys.simpleNP(username, password));
		webSession.loginIfNecessary();

		Operations ops = Operations.buid(new OperationAdapter() {
			@Override
			public AccessToken getResult() {
				IdentityUnit unit = webSession.lookup(WeixinmpWebSession.IDENTITY_UNIT_KEY);
				return new AccessToken(unit.getAccessToken(), null);
			}
		});
		webSession.exec(ops);

		return ops.getFirstResult();
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy