使用自定义网络服务器共享锚ID无效

时间:2019-04-30 22:12:01

标签: python unity3d azure-spatial-anchors

我正在尝试使用自己的Python cgi脚本来存储和提供锚ID。一切都与示例存储库中的Swagger共享服务器一起使用,但是以某种方式,当我切换到Python服务器时,出现了错误,并且该应用程序一直在寻找锚点。

我想我做的是,与Swagger脚本完全一样:我将Anchor ID发送到服务器,并返回一个Anchor编号,以便以后可以再次请求该ID。 据我了解,ID需要以字符串形式交换,这也是我从Python服务器返回的内容(内容类型:文本/纯文本)。

但是,当我从服务器上获取密钥后,尝试解析密钥/查找锚ID时,却出现了以下错误:

这是logcat的相关错误消息:

04-29 07:33:01.031: I/Unity(28756): (Filename: ./Runtime/Export/Debug.bindings.h Line: 45)
04-29 07:33:02.062: I/Unity(28756): State from DemoStepLookForAnchor to DemoStepLookingForAnchor
04-29 07:33:02.062: I/Unity(28756):  
04-29 07:33:02.062: I/Unity(28756): (Filename: ./Runtime/Export/Debug.bindings.h Line: 45)
04-29 07:33:02.141: E/Unity(28756): InvalidOperationException: bad lexical cast: source type value could not be interpreted as target. Request CV: . Response CV: .
04-29 07:33:02.141: E/Unity(28756):   at Microsoft.Azure.SpatialAnchors.NativeLibraryHelpers.CheckStatus (System.IntPtr handle, Microsoft.Azure.SpatialAnchors.status value) [0x000cc] in <b52d7a321113460294136f243fd7bd66>:0 
04-29 07:33:02.141: E/Unity(28756):   at Microsoft.Azure.SpatialAnchors.CloudSpatialAnchorSession.CreateWatcher (Microsoft.Azure.SpatialAnchors.AnchorLocateCriteria criteria) [0x00019] in <b52d7a321113460294136f243fd7bd66>:0 
04-29 07:33:02.141: E/Unity(28756):   at Microsoft.Azure.SpatialAnchors.Unity.Samples.AzureSpatialAnchorsDemoWrapper.CreateWatcher () [0x00008] in <b52d7a321113460294136f243fd7bd66>:0 
04-29 07:33:02.141: E/Unity(28756):   at Microsoft.Azure.SpatialAnchors.Unity.Samples.AzureSpatialAnchorsSharedAnchorDemoScript.AdvanceLocateFlowDemo () [0x00090] in <b52d7a321113460294136f243fd7bd66>:0 
04-29 07:33:02.141: E/Unity(28756):   at Microsoft.Azure.SpatialAnchors.Unity.Samples.AzureSpatialAnchorsSharedAnchorDemoScript.AdvanceDemo () [0x00018] in <b52d7a321113460294136f243fd7bd66>:0 
04-29 07:33:02.141: E/Unity(28756):   at Microsoft.Azure.SpatialAnchors.Unity.

可能是什么问题? 提前非常感谢!

1 个答案:

答案 0 :(得分:0)

JanLa在评论中的答案:

问题是我对Python的一半了解:除了使用不可靠的数据库(anydbm更好)之外,我还犯了一个错误,该错误通过print输出Anchor ID字符串,这在末尾添加了换行符,因此使锚点ID无效。立即使用sys.stdout.write,它可以正常工作。