小编Mat*_*unt的帖子

Android Webview - 完全清除缓存

我的一个活动中有一个WebView,当它加载一个网页时,该页面从Facebook收集了一些背景数据.

我所看到的是,每次打开和刷新应用程序时,应用程序中显示的页面都是相同的.

我已经尝试将WebView设置为不使用缓存并清除WebView的缓存和历史记录.

我也遵循了这里的建议:如何为WebView清空缓存?

但这一切都不起作用,有没有人有任何想法我可以克服这个问题,因为它是我的应用程序的重要部分.

    mWebView.setWebChromeClient(new WebChromeClient()
    {
           public void onProgressChanged(WebView view, int progress)
           {
               if(progress >= 100)
               {
                   mProgressBar.setVisibility(ProgressBar.INVISIBLE);
               }
               else
               {
                   mProgressBar.setVisibility(ProgressBar.VISIBLE);
               }
           }
    });
    mWebView.setWebViewClient(new SignInFBWebViewClient(mUIHandler));
    mWebView.getSettings().setJavaScriptEnabled(true);
    mWebView.clearHistory();
    mWebView.clearFormData();
    mWebView.clearCache(true);

    WebSettings webSettings = mWebView.getSettings();
    webSettings.setCacheMode(WebSettings.LOAD_NO_CACHE);

    Time time = new Time();
    time.setToNow();

    mWebView.loadUrl(mSocialProxy.getSignInURL()+"?time="+time.format("%Y%m%d%H%M%S"));
Run Code Online (Sandbox Code Playgroud)

所以我实现了第一个建议(尽管改变了代码是递归的)

private void clearApplicationCache()
{
    File dir = getCacheDir();

    if(dir!= null && dir.isDirectory())
    {
        try
        {
            ArrayList<File> stack = new ArrayList<File>();

            // Initialise the list
            File[] children = dir.listFiles();
            for(File child:children)
            {
                stack.add(child);
            } …
Run Code Online (Sandbox Code Playgroud)

android caching webview

103
推荐指数
6
解决办法
16万
查看次数

使用NodeJS在API调用中上传文件

我正在寻找使用NodeJS作为构建API的服务器.

理想情况下,我希望有一个API端点来发送一组信息以及一个可以保存到文件系统的文件.

我见过的大多数示例都是通过表单发送文件,但是我想通过发布请求来执行此操作.

有谁知道我怎么能做到这一点(如果可能的话)?

目前我想要达到的目标是以下几点:

app.post('/Some/Endpoint/', controller.handleSomeEndpoint, function(request, response) {
    response.send('Finished Request');
});

exports.handleSomeEndpoint = function(request, response, next) {
    var bodyarr = []
    request.on('data', function(chunk){
      bodyarr.push(chunk);
    })
    request.on('end', function(){
      console.log( bodyarr.join('') );
    })
}
Run Code Online (Sandbox Code Playgroud)

但是如果我按照以下方式运行curl命令,则数据和结束永远不会被调用:

curl http://127.0.0.1:5000/Some/Endpoint/ -F 'test=@test_file'
Run Code Online (Sandbox Code Playgroud)

干杯,马特

node.js

13
推荐指数
1
解决办法
2万
查看次数

9
推荐指数
1
解决办法
6106
查看次数

gcloud auth 抛出 PyOpenSSL 不可用

我一直在尝试让 gcloud 在 Travis 上处于可用状态,但我似乎无法通过这gcloud auth activate-service-account一点。

当它运行时,我只会收到以下错误:

ERROR: (gcloud.auth.activate-service-account) PyOpenSSL is not available. 
See https://developers.google.com/cloud/sdk/crypto for details.
Run Code Online (Sandbox Code Playgroud)

我已经尝试过 apt-get 和 pip 安装export CLOUDSDK_PYTHON_SITEPACKAGES=1,但似乎没有任何效果。

有没有人有任何想法或替代方案?

这是 Travis 版本 Ubuntu 14.04。

更新

如果我从 travis 上的文档运行命令,我会收到以下错误:

usage: gcloud auth activate-service-account  ACCOUNT --key-file KEY_FILE [optional flags]
ERROR: (gcloud.auth.activate-service-account) too few arguments
Run Code Online (Sandbox Code Playgroud)

这让我觉得我必须有一个ACCOUNT参数,但是在使用未加密的服务帐户密钥在本地运行命令后,我知道不需要它(除非发生了变化)。

我唯一能想到的另一件事是文件没有被正确解密或者命令本身在 Travis 中不满意:

- gcloud auth activate-service-account --key-file client-secret.json
Run Code Online (Sandbox Code Playgroud)

更新 2

只是倾倒了大量日志来弄清楚发生了什么。(向@Vilas 大喊大叫寻求他的帮助)

看起来gcloud已经安装在节点的 VM 上,但它是一个超旧版本。

$ which gcloud
/usr/bin/gcloud

$ gcloud --version …
Run Code Online (Sandbox Code Playgroud)

travis-ci google-compute-engine gcloud

5
推荐指数
1
解决办法
1392
查看次数