Как отправить POST JSON на определенный URL-адрес с помощью VB.NET?

Я новичок в области веб-сервисов в VB.NET. Я делаю настольное приложение, которое будет общаться с JIRA (http://www.atlassian.com/software/jira/). Они предоставили REST API, который я решил использовать. Первый шаг - войти в систему, о которой говорят, что...

"Чтобы войти в JIRA, вам нужно отправить имя пользователя и пароль в формате JSON..."

{"username": "admin", "password": "admin"}

на этот URL...

https://addressgoeshere  (мы используем https)

Может ли кто-нибудь предоставить мне пример кода для этого, чтобы у меня было руководство и хорошее начало?

Ответы

Ответ 1

Вот код для эффективного размещения JSON. Переменная res может дать вам ответ на ваш запрос

не забудьте импортировать

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

используя

Imports

а затем имена импорта

чтобы обойти просроченный ssl-сертификат, проверьте это: 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 response As String
  Dim request As WebRequest

  request = WebRequest.Create(uri)
  request.ContentLength = jsonDataBytes.Length
  request.ContentType = contentType
  request.Method = method

  Using requestStream = request.GetRequestStream
    requestStream.Write(jsonDataBytes, 0, jsonDataBytes.Length)
    requestStream.Close()

    Using responseStream = request.GetResponse.GetResponseStream
      Using reader As New StreamReader(responseStream)
        response = reader.ReadToEnd()
      End Using
    End Using
  End Using

  Return response
End Function

чтобы использовать эту функцию

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

--EDIT--

Срок действия связанной страницы истек. Вот рабочая архивная копия:

https://web.archive.org/web/20110924191356/http://blog.jameshiggs.com/2008/05/01/c-how-to-accept-an-invalid-ssl-certificate-programmatically/

Ответ 2

Для "Подключенное соединение было закрыто:" ошибка включает эти 2 строки кода после строки ...WebRequest.Create(Url) -it должна работать

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