在后面的 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 方法中将我的范围更改为读取(全部)。
我正在尝试使用 "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 方法中将我的范围更改为读取(全部)。