nik*_*ers 7 urlrequest server-side swift swift3
我有一个简单的类使用URLSession发送HTTP POST请求(到Neo4j服务器,但这没关系),以及测试它成功的集成测试.
通过Xcode,通过iOS模拟器,我可以运行这个测试一百万次 - 每次都成功.
但是,当我swift test在Ubuntu Linux上运行时(我使用IBM提供的docker镜像),我经常会遇到测试失败,说我收到了401响应.
通过容器中的cURL复制它根本不会失败,所以我不认为这是我的容器的问题.
我添加了一个数据包转储(我通过Charles Proxy检查),其中15个测试运行,7个测试运行(因此7个请求)失败.所有失败的请求都抱怨没有提供身份验证标头.从转储中,这是正确的,转储不包含那些失败的请求的身份验证标头.但为什么不呢?实际上,所有标头标志都是不同的:成功运行具有以下标头:
POST /db/data/cypher HTTP/1.1
Host: 192.168.0.18:7474
Accept-Encoding: deflate, gzip
Authorization: Basic bmVvNGo6c3RhY2swdmVyRmxvdw==
Content-Type: application/json; charset=utf-8
Accept: application/json; charset=utf-8
Connection: keep-alive
User-Agent: urlsessionTestPackageTests.xctest (unknown version) curl/7.35.0
Content-Length: 135
Run Code Online (Sandbox Code Playgroud)
而一个不成功的人有这些:
POST /db/data/cypher HTTP/1.1
Host: 192.168.0.18:7474
Accept: */*
Accept-Encoding: deflate, gzip
Connection: keep-alive
User-Agent: urlsessionTestPackageTests.xctest (unknown version) curl/7.35.0
Content-Length: 135
Run Code Online (Sandbox Code Playgroud)
所有200个结果都具有相同的标题,并且所有401结果具有相同的标题.你能在我的代码中看到任何应该保证这样随机请求的内容吗?
| 归档时间: |
|
| 查看次数: |
571 次 |
| 最近记录: |