Как сделать POST-запрос к серверу в сети компании - PullRequest
0 голосов
/ 17 мая 2018

Мне дали некоторые данные для выполнения вызова для проверки связи с сервером, который находится в нашей рабочей сети. Этот вызов должен произойти из созданного мною приложения vb.net, но я действительно изо всех сил пытаюсь начать работу над этим. Я пытался создать WebRequest, но я даже не уверен, что это правильно.

Вот что у меня есть («ххх» заменяет чувствительные части):

POST /xxx/XmlService HTTP/1.1
Host: xxx001 (this is just the server name)
Content-Type: text/xml
Cache-Control: no-cache
Postman-Token: xxx (long token)

<?xml version="1.0" ?>
<xxx version="1.0">
        <Request
                Object="System"
                Action="Ping">
        </Request>
</xxx>

И я ожидаю ответа XML.

Может ли кто-нибудь хотя бы указать мне правильное направление? Спасибо огромное!

1 Ответ

0 голосов
/ 17 мая 2018

Я наконец получил его для подключения. Вот как для тех, кто следует (используя те же строки "xxx", что и в OP):

    Dim uriTest As Uri
    uriTest = New Uri("http://xxx001/xxx/XmlService")


    Dim requestStr As String
    requestStr = Strings.Trim("POST /xxx/XmlService HTTP/1.1" & Environment.NewLine &
                              "Host: xxx001" & Environment.NewLine &
                              "Content-Type: text/xml" & Environment.NewLine &
                              "Cache-Control: no-cache" & Environment.NewLine &
                              "Postman-Token: 6672bfe9-6d44-4770-869d-4f08c24ab143" & Environment.NewLine & Environment.NewLine &
                              "<?xml version=""1.0"" ?>" & Environment.NewLine &
                              "<xxx version=""1.0"">" & Environment.NewLine &
                              "<Request" & Environment.NewLine &
                              "Object=""System""" & Environment.NewLine &
                              "Action=""Ping"">" & Environment.NewLine &
                              "</Request>" & Environment.NewLine &
                              "</xxx>")
    Dim req As HttpWebRequest, webreq As WebRequest
    webreq = WebRequest.Create(uriTest)
    req = CType(webreq, HttpWebRequest)

    req.Method = "POST"

    Dim dataStream As Stream = req.GetRequestStream()
    Dim byteArray As Byte() = Encoding.UTF8.GetBytes(requestStr)
    dataStream.Write(byteArray, 0, byteArray.Length)
    dataStream.Close()
    Dim response As WebResponse = req.GetResponse()
    Console.WriteLine(CType(response, HttpWebResponse).StatusDescription)
    dataStream = response.GetResponseStream()
    Dim reader As New StreamReader(dataStream)
    Dim responseFromServer As String = reader.ReadToEnd()
    Console.WriteLine(responseFromServer)
    reader.Close()
    dataStream.Close()
    response.Close()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...