databaseInstances API不返回ipAddress

时间:2019-02-18 18:54:22

标签: google-cloud-sql google-apis-explorer

运行Cloud SQL实例列表API的示例“尝试此API”时,结果将在输出中显示有效的IP地址。

"ipAddresses": [
    {
     "ipAddress": "35.xxx.xxx.xxx",
     "type": "PRIMARY"
    }

但是当我将示例Go代码用于同一项目时,它显示为十六进制值,我看不到如何转换。

IpAddresses:[]*sqladmin.IpMapping{(*sqladmin.IpMapping)(0xc0000axxxx

如何在Go程序中获得调用结果,使其看起来像在线示例中一样?

2 个答案:

答案 0 :(得分:0)

您似乎已尝试将指针的数组打印到IpMapping对象,因此您看到的是指针的十六进制地址。您可以在this example中看到这种情况。

如果您实际检查IpMapping本身,就可以看到实际的IP地址,例如this example

答案 1 :(得分:0)

谢谢,大卫。我终于让它工作了,您是正确的。我正在查看整个数组,而不是索引条目。我最终这样做:

@Override
protected void setViews() {
    webView.setWebViewClient(new WebViewClient());
    webView.setWebChromeClient(new WebChromeClient());
    webView.getSettings().setJavaScriptEnabled(true);
    webView.getSettings().setJavaScriptEnabled(true);
    webView.getSettings().setDomStorageEnabled(true);
    webView.getSettings().setDatabaseEnabled(true);
    webView.getSettings().setMinimumFontSize(1);
    webView.getSettings().setMinimumLogicalFontSize(1);
    webView.setWebViewClient(new WebViewClient(){

        public void onPageFinished(WebView view, String url){
            injectCSS();
            super.onPageFinished(view, url);
        }
    });
}

@Override
protected void setViewContents() {
    webView.loadUrl(url);
    }

private void injectCSS() {
    try {
        InputStream inputStream = getContext().getAssets().open("styles.css");
        byte[] buffer = new byte[inputStream.available()];
        inputStream.read(buffer);
        inputStream.close();
        String encoded = Base64.encodeToString(buffer, Base64.NO_WRAP);
        webView.loadUrl("javascript:(function() {" +
                "var parent = document.getElementsByTagName('head').item(0);" +
                "var style = document.createElement('style');" +
                "style.type = 'text/css';" +
                "style.innerHTML = window.atob('" + encoded + "');" +
                "parent.appendChild(style)" +
                "})()");
    } catch (Exception e) {
        e.printStackTrace();
    }
}