在后面的 VB.NET 代码中格式化此 GET 请求?

Format this GET request in VB.NET code behind?

我正在尝试使用 "GET" 方法从此处的 Accelo API 请求活动计数:

https://api.accelo.com/docs/?http#count-activities

虽然我使用了一种非常相似的 POST 方法来使用身份验证方法成功获取访问令牌,但我终究无法弄清楚如何获取活动计数。 API 表示使用 "GET" 并通过访问令牌作为 "bearer..." 我也尝试过执行 post 并首先获取流,尝试发送一些数据和而是访问 "list activities" 端点...没有任何效果。我所做的一切 returns 错误“400。错误请求。”

我试过直接在 URI 中以查询字符串格式传递数据,并尝试过不传递任何数据,因为它是 GET 函数。在我看来,我正在完全遵循 API。

 Dim data2 = Nothing ' Encoding.UTF8.GetBytes(jsonstring)
    Dim _list = GetListOfActivities(New Uri("https://example.api.accelo.com/api/v0/activities/count.xml"), data2, _AccessToken)

Dim reqa As WebRequest = WebRequest.Create(uri)
    ' reqa.Method = "GET"
    reqa.Headers.Add("GET", "/api/v0/activities/count.xml HTTP/1.1")
    reqa.Headers.Add("Authorization", "Bearer " & _AccessToken)
    reqa.ContentType = "application/x-www-form-urlencoded"
    'reqa.ContentLength = jsonDataBytes.Length

    ' Dim streama = reqa.GetRequestStream()
    ' streama.Write(jsonDataBytes, 0, jsonDataBytes.Length)
    'streama.Close()

    Dim responsea As WebResponse = reqa.GetResponse()
    Console.WriteLine((CType(responsea, HttpWebResponse)).StatusDescription)

我一定是请求的格式有误 - 请帮忙?

我的问题原来是个愚蠢的问题,实际上超出了我在这里发布的范围。我在初始请求中指定了 "scope" 以获取设置为只读 "staff" 数据的访问令牌(我已将他们的示例在线复制并粘贴到我的代码中,其他参数如grant 类型,我把作用域也一起带上了​​),在这种情况下,我试图访问 "activities" 数据而不是 "staff" 数据。我原以为我会得到一个与权限相关的错误,而不是 "bad request" 这让我感到困惑,但无论如何它现在可以工作了。

上面的代码——实际上是这一行:

reqa.Method = "GET"

代替这一行:

reqa.Headers.Add("GET", "/api/v0/activities/count.xml HTTP/1.1")

工作正常,因为我在获取访问令牌的初始 Web 方法中将我的范围更改为读取(全部)。