Использую следующую функцию:
Option Explicit
Function GetData(ByVal api As String, ByVal content As String)
Restart: Dim sUrl As String
sUrl = "http://127.0.0.1/api/" + api
Dim oRequest As Object
Dim sResult As String
Dim sResult2 As String
On Error GoTo Err_DoSomeJob
Set oRequest = CreateObject("WinHttp.WinHttpRequest.5.1")
With oRequest
.Open "GET", sUrl, True
.SetRequestHeader "Content-Type", "application/x-www-form-urlencoded; charset=windows-1251"
.Send content
.WaitForResponse
sResult = .ResponseText
Debug.Print sResult
sResult2 = .Status
Debug.Print sResult2
End With
Exit_DoSomeJob:
On Error Resume Next
GetData = sResult
Set oRequest = Nothing
If sResult2 <> "200" Then
GoTo Restart
End If
Exit Function
Err_DoSomeJob:
'MsgBox Err.Description, vbExclamation, Err.Number
Resume Exit_DoSomeJob
End Function
Работает отлично, но текст который она возвращает выглядит некорректно, как будто с пробелами между символов, но по факту между ними ничего нет, вероятно это как то связано с кодировкой, но пробовал отправлять в двух разных и получаю все равно одно и тоже, может кто знает как с таким бороться?
Суть макроса следующая, отправляется запрос на самопальный http сервер, который получает текст и параметры из url и каким либо образом его меняет и отправляет обратно, все хорошо, но вот приходит не совсем то что отправлял.