title: VB.NET - Salesforce POST Request returns 400 Bad Request Error
body: <p><strong>NOTE</strong>: I've never written vb.net code before this. I've googled for a solution but did not find anything that worked.</p>
  
  <p>I'm trying to get access token from Salesforce. <strong>Below code worked just yesterday</strong>. And I have no idea why it is not working today. I've tried adding content-type as <strong>application/x-www-form-urlencoded</strong> but it did not work either. When I use curl I'm able to get access token. Also I'm able to get access token using advanced rest client in google chrome. Any ideas why it is returning <em>400 Bad Request</em> <strong>unknown error retry your request</strong>?</p>
  
  <pre><code>Imports System.Collections.Specialized
  Imports System.Net
  Imports System.Text
  
  Module Module1
  
  Sub Main()
      Dim clientId As String = "clientId"
      Dim clientSecret As String = "clientSecret"
      Dim redirectUri As String = "https://test.salesforce.com"
      Dim environment As String = "https://test.salesforce.com"
      Dim tokenUrl As String = ""
      Dim username As String = "username@salesforce.com"
      Dim password As String = "passwordtoken"
      Dim accessToken As String = ""
      Dim instanceUrl As String = ""
  
      Console.WriteLine("Getting a token")
  
      tokenUrl = environment + "/services/oauth2/token"
      Dim request As WebRequest = WebRequest.Create(tokenUrl)
  
      Dim values As NameValueCollection = New NameValueCollection()
      values.Add("grant_type", "password")
      values.Add("client_id", clientId)
      values.Add("client_secret", clientSecret)
      values.Add("redirect_uri", redirectUri)
      values.Add("username", username)
      values.Add("password", password)
  
      request.Method = "POST"
  
      Try
          Dim client = New WebClient()
          Dim responseBytes As Byte() = client.UploadValues(tokenUrl, "POST", values)
          Dim response As String = Encoding.UTF8.GetString(responseBytes)
          Console.WriteLine(response)
          Console.ReadKey()
      Catch ex As Exception
          Console.WriteLine(ex.Message)
          Console.WriteLine("Press any key to close")
          Console.ReadKey()
      End Try
  
  End Sub
  
  End Module
  </code></pre>