如何获取TOP平台测试环境的SessionKey

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

你可能感兴趣的:(PHP)