首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Session在Android XWalkView中不起作用

Session在Android XWalkView中不起作用
EN

Stack Overflow用户
提问于 2015-05-26 00:09:07
回答 1查看 392关注 0票数 1

我使用Crosswalk的XWalkView在我的Android应用程序中显示网页。我尝试在我的网页上使用会话,但是会话根本不起作用,我不能保存任何会话。

这是我初始化XWalkView的方式:

代码语言:javascript
复制
    xWalkWebView = (XWalkView)findViewById(R.id.page);
    xWalkWebView.setResourceClient(new MyResourceClient(xWalkWebView));
    xWalkWebView.load(API.BASE_URL, null);
    if(me.beesafe.beesafe.app.AppInfo.isDebug) {
        // turn on debugging
        XWalkPreferences.setValue(XWalkPreferences.REMOTE_DEBUGGING, true);
    }

这是MyResouceClient:

代码语言:javascript
复制
class MyResourceClient extends XWalkResourceClient {
    MyResourceClient(XWalkView view) {
        super(view);
    }

    private InputStream inputStream;

    private String builtDataString() throws IOException {
        return "key=test";
    }

    private void writeDataToBuffer(ByteArrayOutputStream stream) throws IOException {
        stream.write(this.builtDataString().getBytes());
        stream.flush();
        stream.close();
    }

    private void writeOutputStream(OutputStream output, ByteArrayOutputStream buffer) throws IOException {
        byte[] bufferArray = buffer.toByteArray();
        for(int i = 0; i < bufferArray.length; i++) {
            output.write(bufferArray[i]);
        }
        output.flush();
        output.close();
    }

    public String getContentType() {
        return "application/x-www-form-urlencoded";
    }

    public String createBoundary() {
        return "--------------------"
                + Long.toString(System.currentTimeMillis(), 16);
    }

    @Override
    public WebResourceResponse shouldInterceptLoadRequest(XWalkView view, String urlStr) {
        HttpURLConnection connection = null;
        inputStream = null;
        try {
            if(urlStr.equalsIgnoreCase(API.BASE_URL)) {
                URL url = new URL(urlStr);
                connection = (HttpURLConnection) url.openConnection();

                connection.setFixedLengthStreamingMode(this.builtDataString().getBytes().length);
                connection.setUseCaches(false);
                connection.setDoInput(true);
                connection.setConnectTimeout(20 * 1000);
                connection.setReadTimeout(30 * 1000);
                connection.setDoOutput(true);
                connection.setRequestMethod("POST");
                connection.setRequestProperty("Content-Type", getContentType());
                connection.setRequestProperty("Content-Language", "en-US");
                connection.setRequestProperty("Connection", "keep-alive");
                DataOutputStream outputStream = new DataOutputStream(
                            connection.getOutputStream());
                ByteArrayOutputStream outputBuffer = new ByteArrayOutputStream();
                writeDataToBuffer(outputBuffer);
                writeOutputStream(outputStream, outputBuffer);
                inputStream = connection.getInputStream();
            }
        } catch (MalformedURLException e) {
            e.printStackTrace();
            inputStream = null;
        } catch (IOException e) {
            e.printStackTrace();
            inputStream = null;
        } finally {
            /*if (connection != null) {
                connection.disconnect();
            }*/
        }
        if(/*inputStream != null*/urlStr.equalsIgnoreCase(API.BASE_URL)) {
            return new WebResourceResponse(null, "utf-8", inputStream);
        } else {
            return super.shouldInterceptLoadRequest(view, urlStr);
        }
    }
}

帮帮忙好吗?如何打开会话?

如果我只是在我的网站上使用这个PHP代码,它不能工作:

代码语言:javascript
复制
<?php
    session_start();
    $_SESSION['test'] = 'test';
?>

THere在$_SESSION“‘test”中为nothing

EN

回答 1

Stack Overflow用户

发布于 2016-12-07 13:13:40

php session在xwalkview中工作,你必须把session_start();放在每个使用会话的php文件的开头。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30442162

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档