Я немного перегружен этим.
Я сделал небольшое приложение MS Access, которое за три недели быстро росло, и у меня был запрос к API вызвать другое программное обеспечение. Поставщик другой компании предоставил информацию об этом, но она находится в C#, и я не могу понять, как это сделать в VBA.
У меня есть ряд других HTTP-вызовов к онлайн-API, но ничего к сетевому компьютеру, а все остальные имеют информацию о cURL, которую я преобразовал в VBA с помощью справки по переполнению стека.
Итак, есть раздел SHA256 для генерации пароля:
private static string EncodeStringSha256Hash(string text)
{
using (var sha = new System.Security.Cryptography.SHA256Managed())
{
byte[] textData = System.Text.Encoding.UTF8.GetBytes(text);
byte[] hash = sha.ComputeHash(textData);
return BitConverter.ToString(hash).Replace("-", String.Empty);
}
}
Для этого В этом видео я пытаюсь использовать код (он длинный, но он там). Создание ha sh работает, но будет ли это уместным для вышеописанного?
Я вижу, что оно основано на SHA256Managed, но я не знал об этом бите:
BitConverter.ToString(hash).Replace("-", String.Empty);
Наконец, документация показывает этот пример:
GET: /API/CLIENT
using System;
using System.Web;
var url = "localhost";
var userName = "stackoverflow"
var password = EncodeStringSha256Hash(DateTime.UtcNow.ToString("ddMMyyyy"));
var port = 8800;
var methodUrl = $"http://{url}:{port}/Api/Login/user";
var parameters = new Dictionary<string, string>
{
{"username", userName},
{"password", password}
};
var content = new FormUrlEncodedContent(parameters);
var response = await new HttpClient().PostAsync(methodUrl, content);
var responseString = await response.Content.ReadAsStringAsync();
Вот где я застрял. У меня их программное обеспечение работает на виртуальной машине HyperV, которая находится в моей сети, и я «вижу» ее в своей сети. \\windev2001eval
работает, если я хочу go через проводник в общие папки
Я также использовал приведенный ниже синтаксис для других моих HTTP-запросов:
Set httpReq = CreateObject("MSXML2.ServerXMLHTTP")
httpReq.Open "GET", URL, False
httpReq.setRequestHeader "username", username
httpReq.setRequestHeader "password", password
httpReq.send
strResponse = httpReq.responseText
Debug.Print strResponse
Это ничего не возвращает, используя "http://windev2001eval: 8800 / API / Login / " в качестве моего URL. Во всяком случае, это далеко, как я получаю. Что я могу попробовать дальше?