响应:通过RestSharp在Swagger中未经授权

时间:2019-07-01 11:45:58

标签: vb.net api post swagger restsharp

我需要使用Swagger的API发送电子邮件,但是我在传递令牌时遇到了授权问题,但结果仍然是未授权。

我使用下面的代码。

   `Dim url = "test123/test.com" (can't include the actual)
    Dim apiKey = "12312"
    Dim apiPassword = "12312"
    Dim client = New RestClient(url)
    Dim request = New RestRequest("token", Method.POST)
    request.Parameters.Clear()
    request.AddParameter("grant_type", "password")
    request.AddParameter("username", apiKey)
    request.AddParameter("password", apiPassword)
    Dim response As IRestResponse = client.Execute(request)
    _pristrKey = response.Content
    Return JsonConvert.DeserializeObject(response.Content)`

现在我在_pristrKey中拥有令牌

然后我执行此操作以发送电子邮件。

   `Dim url = "test123/test.com"
    Dim client = New RestClient(url)
    Dim request = New RestRequest("api/email", Method.POST)
    request.Parameters.Clear()
    request.AddHeader("accept", "application/json")
    request.AddParameter("Authorization", String.Format($"Bearer " + 
    _pristrKey), ParameterType.HttpHeader)
    request.AddHeader("Content-Type", "application/json")
    Dim apiInput = New With {Key .bulkId = "123", Key .from = 
    "test123@gmail.com", Key .subject = "Test", Key .text = "Test123", Key 
    .to = "test321@gmail.com"}
    request.AddParameter("application/json", 
    JsonConvert.SerializeObject(apiInput), ParameterType.RequestBody)
    request.RequestFormat = DataFormat.Json
    Dim response As IRestResponse = client.Execute(request)`

实际输出:response = "StatusCode: Unauthorized, Content-Type: , Content-Length: 0)"

1 个答案:

答案 0 :(得分:1)

发生此错误是因为您的令牌无效,如果正确,请检查您的令牌,还检查令牌中是否有额外的双引号(“)。我在vb.net中遇到此问题,只需使用:

.Replace("""", "").Trim()