Проблема с телом при отправке уведомления pushbullet

#vb.net #pushbullet

#vb.net #pushbullet

Вопрос:

У меня странная проблема при отправке уведомления PushBullet. Я могу отправить уведомление, если richtextbox содержит текст, подобный:

это текст

Он ничего не отправляет, если richtextbox:

это
текст

или:

это

текст

Я пытался использовать regex replace для удаления всех пробелов, но это не работает. Код, который я использую для отправки уведомления:

 Private Sub PushBullet()

    'PUSHBULLET
    Dim token As String = "pushbullet token"            
    Dim title As String = "Notication Title"                             
    Dim body As String
    body = Regex.Replace(RichTextBox1.Text, "^s $[rn]*", "", RegexOptions.Multiline)
    

    Try
        ' Create a request using a URL that can receive a post.'
        Dim Request As HttpWebRequest = CType(WebRequest.Create("https://api.pushbullet.com/v2/pushes"), HttpWebRequest)

        ' Set the Method property of the request to POST.'
        Request.Method = "POST"

        ' Create POST data and convert it to a byte array.'
        Dim postData As String = "{""type"": ""note"", ""title"": """ amp; title amp; """, ""body"": """ amp; body amp; """}"
        Dim byteArray As Byte() = Encoding.UTF8.GetBytes(postData)

        ' Set the ContentLength property of the WebRequest.'
        Request.ContentLength = byteArray.Length
        ' Set the ContentType property of the WebRequest.'
        Request.ContentType = "application/json"
        ' Add the token to header.'
        Request.Headers.Add("Access-Token", token)
        ' Get the request stream.'
        Dim dataStream As Stream = Request.GetRequestStream()
        ' Write the data to the request stream.'
        dataStream.Write(byteArray, 0, byteArray.Length)
        ' Close the Stream object.'
        dataStream.Close()
        ' Get the response.'
        Dim response As WebResponse = Request.GetResponse()
        ' Get the stream containing content returned by the server.'
        dataStream = response.GetResponseStream()
        ' Open the stream using a StreamReader for easy access.'
        Dim reader As New StreamReader(dataStream)
        ' Read the content.'
        Dim responseFromServer As String = reader.ReadToEnd()
        ' Show result in RichTextBox.'
        '  RichTextBox1.Text = responseFromServer
        ' Clean up the streams.'
        reader.Close()
        dataStream.Close()
        response.Close()
    Catch ex As Exception
    End Try
End Sub

  

Есть идеи?
Спасибо

Комментарии:

1. Необходимо удалить потоки. Используйте Using блок.

Ответ №1:

Я решил с помощью:

    TextBox1.Text = TextBox1.Text.Replace(vbLf, " ").Replace(vbCr, "")
  

Комментарии:

1. Если вы хотите сохранить многострочный макет, замените на n и r TextBox1.Text = TextBox1.Text.Replace(vbLf, "n").Replace(vbCr, "r")