簡體   English   中英

在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 ...”,並且我還嘗試過發布並首先獲取流,嘗試發送一些數據並訪問“列表活動”端點。 ..什么都沒有。 我所做的一切都會返回錯誤“ 400. Bad Request”。

我嘗試直接在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)

我必須格式化請求格式錯誤-請幫忙嗎?

我的問題原來是愚蠢的,實際上超出了我在此處發布的范圍。 我在初始請求中指定了一個“作用域”,以獲取設置為只讀“ staff”數據的訪問令牌(我將示例在線復制並粘貼到了我的代碼中,用於其他類型的參數,例如授權類型和我將示波器與它一起帶來了),在這種情況下,我試圖訪問“活動”數據而不是“人員”數據。 我本以為會得到一個與權限相關的錯誤,而不是讓我感到困惑的“錯誤請求”,但是無論如何現在它都能工作了。

上面的代碼-實際上是這一行:

reqa.Method = "GET"

代替此行:

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

由於我在獲取訪問令牌的初始Web方法中將范圍更改為read(all),因此效果很好。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM