2011-09-12 39 views
15

Sono un principiante dei servizi Web in VB.NET. Sto facendo un'applicazione desktop che parlerà con JIRA (http://www.atlassian.com/software/jira/). Hanno fornito una API REST che ho deciso di usare. Il primo passo è quello di effettuare il login, che si dice che ...Come inviare un JSON a un URL specifico utilizzando VB.NET?

"Per accedere a JIRA, è necessario inviare un nome utente e una password in formato JSON ..."

{ "nome utente" : "admin", "password": "admin"}

a questo URL ...

https: // addressgoeshere (stiamo usando https)

Qualcuno può fornirmi un codice di esempio per farlo, così posso avere una guida e un buon inizio? Per favore e grazie mille!

risposta

25

ecco il codice per pubblicare efficacemente json. La variabile res è in grado di darvi la risposta in alla tua richiesta

ricordarsi di importare

  • System.Net
  • System.IO
  • System.Text

utilizzando

Imports 

e poi i nomi di importazione

di bypassare scaduto assegno certificato SSL questo: 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 

Per utilizzare questa funzione

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

Ciao! Grazie! Finalmente ho funzionato! Ma ho un piccolo problema. Quando ho provato ad utilizzare https ha dato un ** "un'eccezione non gestita di tipo 'System.Net.WebException' verificato in System.dll Ulteriori informazioni: La connessione sottostante è stata chiusa: un errore imprevisto si è verificato su un invio . "** Come posso farlo funzionare utilizzando https? Grazie! – max

+0

lo stesso dovrebbe funzionare anche per https – Parvesh

+0

Questo è un po 'strano. Continuo a ricevere questo errore. Quando accedo all'url in google chrome o in qualsiasi altro browser, viene richiesto un certificato che faccio semplicemente clic su "procedi comunque". Pensi che abbia qualcosa a che fare con questo? – max

0

Per 'La connessione sottostante è stata chiusa:' Errore di includere questi 2 linee di codice dopo la riga ...WebRequest.Create(Url) -it dovrebbe funzionare

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

Problemi correlati