在elixir 1.2中,他们已经包含了关键字"with",但它并不完全清楚它是什么.
我将如何以及在何种情况下使用它?
所以我在本地运行我的谷歌端点dev_appserver.py.我使用API资源管理器来测试应用程序.
我用来创建服务的代码,所以我可以调用API如下:
from apiclient.discovery import build
from oauth2client.client import GoogleCredentials
credentials = GoogleCredentials.get_application_default()
service = build('speech', 'v1beta1', credentials=credentials)
Run Code Online (Sandbox Code Playgroud)
我收到SSL错误(无效和/或缺少SSL证书),即使我通过浏览器访问指定的URL它工作正常(即绿色挂锁出现).
我不确定发生了什么变化,但这不久前工作正常.
我试图禁用SSL检查,但无法进行.
完整日志如下:
INFO 2017-01-02 03:12:02,724 discovery.py:267] URL being requested: GET https://www.googleapis.com/discovery/v1/apis/speech/v1beta1/rest?userIp=0.2.0.3
ERROR 2017-01-02 03:12:03,022 wsgi.py:263]
Traceback (most recent call last):
File "/home/vini/opt/google-cloud-sdk/platform/google_appengine/google/appengine/runtime/wsgi.py", line 240, in Handle
handler = _config_handle.add_wsgi_middleware(self._LoadHandler())
File "/home/vini/opt/google-cloud-sdk/platform/google_appengine/google/appengine/runtime/wsgi.py", line 299, in _LoadHandler
handler, path, err = LoadObject(self._handler)
File "/home/vini/opt/google-cloud-sdk/platform/google_appengine/google/appengine/runtime/wsgi.py", line 85, in LoadObject
obj = __import__(path[0])
File "/mnt/b117/home/vini/udacity/cerci-endpoint/api.py", line 28, in <module>
service = build('speech', …Run Code Online (Sandbox Code Playgroud) 我的项目 A 依赖于依赖于库 C 的库 B。
库 B 将依赖版本设置为"*"(any),因此 Cargo 将下载最新版本的 C。
如何指示 Cargo 使用特定版本的库 C 构建库 B?
我正在尝试建造铁。
当前构建失败,但我可以看到最后一次成功构建,包括 Rust 和 Cargo 包版本。
我下载了构建中使用的特定 Rust nightly,并通过编辑 Cargo.toml 将铁的直接依赖项设置为该构建中使用的依赖项:
[dependencies]
hyper = "0.0.18"
typemap = "0.0.5"
url = "0.2.9"
Run Code Online (Sandbox Code Playgroud)
rust-serialized,它是url和time包的依赖项,下载为最新版本,该版本不与我的特定 Rust 版本一起编译。
如果我使用上面 Travis 构建中使用的版本,我相信它会成功编译。
当我尝试:
HTTPoison.get! "https://facebook.com"
Run Code Online (Sandbox Code Playgroud)
我明白了:
** (HTTPoison.Error) {:tls_alert, 'unknown ca'}
[error] SSL: :certify: ssl_handshake.erl:1606:Fatal error: unknown ca
(httpoison) lib/httpoison.ex:66: HTTPoison.request!/5
Run Code Online (Sandbox Code Playgroud)
这是预期的,因为在我的公司,我需要相信防火墙的证书出来.
我信任系统范围内的证书(.cer文件),这就是为什么wget在访问httpsURL 时不会给我ssl错误.但似乎hackney/HTTPoison忽略了这种配置.
如何让HTTPoison/hackney将证书识别为可信证书?
以下代码的返回完全不是我所期望的:
iex(12)> Regex.scan(%r/(?<groupname>a)b(c)/g,"abcdabcd", capture: :groups)
[["a"], ["a"]]
Run Code Online (Sandbox Code Playgroud)
有2组,但只有命名的组出现在结果中.并且组名完全被忽略.
如果我使用named_capture,我会得到以下内容:
iex(14)> Regex.named_captures(%r/(?<groupname>a)b(c)/g,"abcdabcd", capture: :groups)
[groupname: "a"]
Run Code Online (Sandbox Code Playgroud)
好吧,我认为结果
Regex.scan(%r/(?<groupname>a)b(c)/g,"abcdabcd", capture: :groups)
Run Code Online (Sandbox Code Playgroud)
应该是
[["a", "c"], ["a", "c"]] #=> including "anonymous groups"
Run Code Online (Sandbox Code Playgroud)
要么
[[groupname: "a"], [groupname: "a"]] #=> include group name in the results
Run Code Online (Sandbox Code Playgroud)
所以我的问题是为什么在使用Regex.scan时我必须在组捕获中命名组才会完全忽略它们?