web-dev-qa-db-fra.com

Comment POST un JSON à une URL spécifique en utilisant VB.NET?

Je suis un débutant sur les services Web dans VB.NET. Je crée une application de bureau qui communiquera avec JIRA (http://www.atlassian.com/software/jira/). Ils ont fourni une REST api que j'ai décidé d'utiliser. La première étape consiste à se connecter, ce qui est dit ...

"Pour vous connecter à JIRA, vous devez POST un nom d'utilisateur et un mot de passe au format JSON ..."

{"nom d'utilisateur": "admin", "mot de passe": "admin"}

à cette url ...

https: // addressgoeshere (nous utilisons https)

Est-ce que quelqu'un peut me fournir un exemple de code afin que je puisse avoir un guide et un bon départ? S'il vous plaît et merci beaucoup!

19
max

voici le code pour poster JSON efficacement. La variable res est capable de vous donner la réponse à votre requête

n'oubliez pas d'importer

  • System.Net
  • System.IO
  • System.text

en utilisant

Imports

puis les noms d'importation

pour ignorer le certificat ssl expiré, vérifiez ceci: http://blog.jameshiggs.com/2008/05/01/c-how-to-accept-an-invalid-ssl-certificate-programmatically/

Private Function SendRequest(uri As Uri, jsonDataBytes As Byte(),contentType As String, method As String) As String
Dim req As WebRequest = WebRequest.Create(uri)
req.ContentType = contentType
req.Method = method
req.ContentLength = jsonDataBytes.Length


Dim stream = req.GetRequestStream()
stream.Write(jsonDataBytes, 0, jsonDataBytes.Length)
stream.Close()

Dim response = req.GetResponse().GetResponseStream()

Dim reader As New StreamReader(response)
Dim res = reader.ReadToEnd()
reader.Close()
response.Close()

Return res
End Function

utiliser cette fonction

Dim data = Encoding.UTF8.GetBytes(jsonSring)
Dim result_post = SendRequest(uri, data, "application/json", "POST")
30
Parvesh

Pour 'La connexion sous-jacente a été fermée:' erreur inclut ces 2 lignes de code après la ligne ...WebRequest.Create(Url) -il devrait fonctionner 

System.Net.ServicePointManager.UseNagleAlgorithm = FalseSystem.Net.ServicePointManager.Expect100Continue = False

1
ChrisBaris