TOP平台的SessionKey的获取是一个很头疼的事情,根据官方主页wiki中的描述,必须要上其主页,然后点击获取SessionKey,才能获取到。
对于富客户端应用,可以通过使用httpclient来模拟一个POST的请求,然后对返回的结果进行解析,获取SessionKey.
首先使用抓包工具,得到请求报文,发现POST请求中只有一个参数, nick。实现如下:
ttpClient httpClient = new HttpClient();
PostMethod method = new PostMethod( "http://open.taobao.com/isv/authorize.php?appkey={appkey}" );
HttpMethodParams params = method.getParams();
params.setParameter( HttpMethodParams.RETRY_HANDLER, new DefaultHttpMethodRetryHandler( 3, false ) );
params.setHttpElementCharset( "GBK" );
params.setContentCharset( "GBK" );
method.addParameter( "nick", "alipublic07" );
try
{
int statusCode = httpClient.executeMethod( method );
byte[] responseBody = method.getResponseBody();
System.out.println( new String( responseBody, "UTF-8" ) );
}
catch( Exception e )
{
;
}
得到运行结果:
<input type="text" id="autoInput" value="PpAE1wquKJqHvfPMtEq5MfAezWW0Cs%2FpbogML7YL8xng5WfwOJ%2BcE28Bo0CBOROHIcALD4npggxbgSgSaxvscQ%3D%3D" style="width:600px;border-top:#716F64 1px solid;border-left:#716F64 1px solid;border-right:#F1EFE2 1px solid;border-bottom:#F1EFE2 1px solid">
其中的value属性的值就是获取到的SessionKey
对于富客户端应用,可以通过使用httpclient来模拟一个POST的请求,然后对返回的结果进行解析,获取SessionKey.
首先使用抓包工具,得到请求报文,发现POST请求中只有一个参数, nick。实现如下:
ttpClient httpClient = new HttpClient();
PostMethod method = new PostMethod( "http://open.taobao.com/isv/authorize.php?appkey={appkey}" );
HttpMethodParams params = method.getParams();
params.setParameter( HttpMethodParams.RETRY_HANDLER, new DefaultHttpMethodRetryHandler( 3, false ) );
params.setHttpElementCharset( "GBK" );
params.setContentCharset( "GBK" );
method.addParameter( "nick", "alipublic07" );
try
{
int statusCode = httpClient.executeMethod( method );
byte[] responseBody = method.getResponseBody();
System.out.println( new String( responseBody, "UTF-8" ) );
}
catch( Exception e )
{
;
}
得到运行结果:
<input type="text" id="autoInput" value="PpAE1wquKJqHvfPMtEq5MfAezWW0Cs%2FpbogML7YL8xng5WfwOJ%2BcE28Bo0CBOROHIcALD4npggxbgSgSaxvscQ%3D%3D" style="width:600px;border-top:#716F64 1px solid;border-left:#716F64 1px solid;border-right:#F1EFE2 1px solid;border-bottom:#F1EFE2 1px solid">
其中的value属性的值就是获取到的SessionKey