2011-09-12 47 views
15

Soy un novato sobre servicios web en VB.NET. Estoy haciendo una aplicación de escritorio que hablará con JIRA (http://www.atlassian.com/software/jira/). Proporcionaron una API REST que decidí usar. El primer paso es iniciar sesión, que se dice que ...Cómo PUBLICAR un JSON a una URL específica usando VB.NET?

"Para entrar en JIRA, que necesita para poner un nombre de usuario y contraseña en formato JSON ..."

{ "nombre de usuario" : "admin", "contraseña": "admin"}

a esta url ...

https: // addressgoeshere (estamos utilizando https)

¿Alguien puede proporcionarme un código de muestra para hacer esto para que pueda tener una guía y un buen comienzo? Por favor y muchas gracias!

Respuesta

25

aquí está el código para publicar json con eficacia. La variable res es capaz de darle la responce a su consulta

recordar importar

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

utilizando

Imports 

y luego los nombres de importación

para eludir cheque certificado SSL caducado esto: 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 

para utilizar esta función

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

¡Hola! ¡Gracias! ¡Finalmente lo conseguí trabajando! Pero tengo un pequeño problema. Cuando he intentado usar https le dio un ** "Una excepción no controlada del tipo 'System.NET.WebException' ocurrió en System.dll Información adicional: La conexión subyacente se cerró: un error inesperado en un envío . "** ¿Cómo puedo hacer que funcione usando https? ¡Gracias! – max

+0

lo mismo debería funcionar para https también – Parvesh

+0

Eso es un poco raro. Sigo recibiendo ese error. Cuando accedo a la url en google chrome o en cualquier otro navegador, solicita un certificado que simplemente hago clic en "continuar de todos modos". ¿Crees que tiene algo que ver con eso? – max

0

Para 'la conexión subyacente se cerró:' error incluir estos 2 líneas de código después de la línea ...WebRequest.Create(Url) -debe funcionar

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

Cuestiones relacionadas