2016-10-12 8 views
0

Я успешно создал функцию входа в систему, которая предоставляет токен аутентификации через json. Это то, что я до сих пор выходил из системы. URL должен быть добавлен со строкой «logout», и я должен указать cookie со значением, равным токену аутентификации. Я пробовал много других методов, но я думал, что это самое близкое, что я пришел. Мне не нужен контент, но нужно ли что-то включать? Любая помощь очень ценится.Выход из RESTful Web API при отправке токена аутентификации входа в качестве файла cookie

Public Function LOGOUT(inURL As String, authToken As String) 
    Dim inURI As New Uri(inURL + "logout") 
    Dim cookieHolder As New CookieContainer 
    Dim response As New HttpResponseMessage 
    Using Handler As New HttpClientHandler() With {.CookieContainer = cookieHolder} 
     cookieHolder.Add(inURI, New Cookie("authToken", authToken)) 
     Using client As New HttpClient() 
      response = client.PostAsync(inURI, Nothing).Result 
      If response.IsSuccessStatusCode Then 
       Dim json As String = response.Content.ReadAsStringAsync().Result 
       'Form1.TextBox1.Text = client.DownloadString(address).ToString 
       'Dim json As String = client.PostAsync(inURI, Nothing) 
       'Dim InstanceURL As String 
       'InstanceURL = JObject.Parse(json).SelectToken("response.URL").ToString 
       'MsgBox(InstanceURL) 
       'Return InstanceURL 
      End If 
     End Using 
    End Using 
End Function 

Так что не работала, я попробовал другой метод,

Public Function LOGOUT(inURL As String, authToken As String) As Boolean 
    LOGOUT = False 
    Dim inURI As New Uri(inURL + "logout") 
    Dim client As New HttpClient 
    Dim _cookieContainer As New CookieContainer() 
    Dim myCookie As Cookie = New Cookie("authToken", authToken) 
    Dim request As HttpWebRequest = WebRequest.Create(inURI) 
    Try 
     _cookieContainer.Add(inURI, myCookie) 
     request.CookieContainer = _cookieContainer 
     Dim response As HttpWebResponse = request.GetResponse() ''500 error 
     MsgBox(response.ToString) 
     LOGOUT = True 
    Catch ex As Exception 
     MsgBox(ex.Message.ToString) 
     LOGOUT = False 
    End Try 
End Function 

Я все еще получаю ошибку 500

ответ

0

я понял это. Я идиот ... LOL Я забыл много свойств запроса.

Public Function LOGOUT(inURL As String, authToken As String) As Boolean 
    LOGOUT = False 
    Dim inURI As New Uri(inURL + "logout") 
    Dim client As New HttpClient 
    Dim cookieContainer As New CookieContainer() 
    Dim myCookie As Cookie = New Cookie("authToken", authToken) 
    Dim request As HttpWebRequest = WebRequest.Create(inURI) 
    request.UserAgent = "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.14) Gecko/20080404 Firefox/2.0.0.14" 
    request.AllowAutoRedirect = False 
    request.ContentType = "application/json" 
    request.Method = "POST" 
    'request.ContentLength = authToken.Length 
    Try 
     cookieContainer.Add(inURI, myCookie) 
     request.CookieContainer = cookieContainer 
     Dim response As HttpWebResponse = request.GetResponse() ''500 error 
     If response.StatusCode = "200" Then 
      TextBox1.Text = TextBox1.Text + vbCrLf + "Logged Out " + response.StatusDescription 
      'MsgBox(response.StatusDescription) 
      LOGOUT = True 
     End If 

    Catch ex As Exception 
     MsgBox(ex.Message.ToString) 
     LOGOUT = False 
    End Try 
End Function