【发布时间】:2019-01-20 17:48:12
【问题描述】:
我创建并分发了一个区块链工作台项目。 我可以访问 Azure Blockchain Workbench 客户端网站,在那里我可以创建合同、采取行动等。
我尝试开发一个简单的程序来使用 Azure Blockchain Workbench REST API 与我自己的应用程序与区块链进行交互。
在调用任何 API 函数之前,我得到了身份验证令牌(我希望它是正确的,因为我得到了令牌的值)
如果现在我尝试调用 API 函数“https://myblockchain-xyz-api.azurewebsites.net/api/v2/users”,那么我会得到用户列表。
但是,如果现在我尝试调用有关区块链应用程序的任何其他函数,例如“/api/v2/applications”,我会得到返回码 204“无内容”。
如果我尝试调用例如“/api/v2/applications/2/workflows”,则会得到 404“未找到”
在 API 调用之后:
Dim MyOauthToken As String =
Utilities.BlockchainAuthentication.GetAuthenticationToken().Result
Dim MyHttpClient As New HttpClient()
MyHttpClient.DefaultRequestHeaders.Authorization = New AuthenticationHeaderValue("Bearer", MyOauthToken)
'--------------------------------------------------------
'Force security protocol
ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3 Or SecurityProtocolType.Tls Or SecurityProtocolType.Tls11 Or SecurityProtocolType.Tls12
'---------------------------------------------------------
'Get list of applications
Dim MyServiceUriString As String = "https://myblockchain-xyz-api.azurewebsites.net/api/v2/users/applications"
Dim MyResponse As Task(Of HttpResponseMessage) = MyHttpClient.GetAsync(MyServiceUriString)
MyResponse.Wait()
“应用程序”功能的结果是 204 “无内容” 如果我执行相同的调用“.../api/v2/users”,它会起作用并且我会获得所有用户。
有人可以帮忙吗?
我尝试调用“../users/me”来查看会发生什么,我得到以下结果(我不知道这是否有帮助):
{"currentUser":{"userID":7,"externalID":"1r67sf88-5b49-47da-a27a-79g3gg345","firstName":null,"lastName":"","emailAddress":null, "userChainMappings":[{"userChainMappingID":5,"userID":7,"connectionID":1,"chainIdentifier":"0x32cfcf169813364563456348c99b9","chainBalance":null}]},"capabilities":{"canUploadApplication": false,"canUploadContractCode":false,"canModifyRoleAssignments":false,"canProvisionUser":false,"canUpgradeWorkbench":false}}
【问题讨论】:
-
您的令牌必须正确,否则您将收到所有这些调用的 401 Unauthorized 响应。关于 204 No Content 响应,您是否提供了无效的
skip参数,或者您根本没有应用程序?此外,关于 404 Not Found,是否有可能应用程序 #2 根本不存在? -
我试过没有任何参数和以下参数 "/applications?sortBy=DisplayName&enabled=true&top=50&skip=0&isLatestVersion=false" 但我总是得到 204 No content。我有 3 个应用程序,如果我将 SQL 服务器连接到链下数据库,我还可以查看它们的 ID 为 1、2 和 3
-
@Stefano 你解决了吗?我面临同样的问题。 Azure Active Directory 中的 api 角色似乎有些配置错误...
-
我能够创建新用户,但是当我使用 users/me 时,我得到的响应与您得到的相同。有什么办法改变吗?
标签: azure blockchain azure-blockchain-workbench