HTTPS запрос POST с помощью VBA для Excel

Если у Вас есть установленный.Net, инструмент для генерации схем XSD и классов уже включен по умолчанию.
Для меня, инструмент XSD установлен под следующей структурой. Это может отличаться в зависимости от Вашего каталога установки.

C:\Program Files\Microsoft Visual Studio 8\VC>xsd
Microsoft (R) Xml Schemas/DataTypes support utility
[Microsoft (R) .NET Framework, Version 2.0.50727.42]
Copyright (C) Microsoft Corporation. All rights reserved.

xsd.exe -
   Utility to generate schema or class files from given source.

xsd.exe <schema>.xsd /classes|dataset [/e:] [/l:] [/n:] [/o:] [/s] [/uri:]
xsd.exe <assembly>.dll|.exe [/outputdir:] [/type: [...]]
xsd.exe <instance>.xml [/outputdir:]
xsd.exe <schema>.xdr [/outputdir:]

Обычно классы и схемы, что этот инструмент генерирует работу скорее хорошо, особенно если Вы собираетесь быть потреблением их на.Net языке

, я обычно беру XML-документ, что я после, продвигаю его через инструмент XSD с эти /o:<your path> флаг генерировать схему (xsd) и затем продвигать xsd файл назад через инструмент с помощью /classes /L:VB (or CS) /o:<your path> флаги для получения классов, что я могу импортировать и использовать в мое время для дня.Net проекты

8
задан afewcc 12 August 2009 в 05:09
поделиться

3 ответа

Объект WinHttpRequest имеет метод SetClientCertificate . Попробуйте этот пример кода, взятый из MSDN (я пытался адаптировать его для VBA):

' Instantiate a WinHttpRequest object. '
Dim HttpReq as new ActiveXObject("WinHttp.WinHttpRequest.5.1")

' Open an HTTP connection. '
HttpReq.Open("GET", "https://www.test.com/", false)

' Select a client certificate. '
HttpReq.SetClientCertificate("LOCAL_MACHINE\Personal\My Certificate")

' Send the HTTP Request. '
HttpReq.Send()
8
ответ дан 5 December 2019 в 14:05
поделиться

Хотя я не использовал компонент COM (WinHttpRequest), он похоже, вам нужен вызов SetClientCertificate перед вызовом send, согласно ссылке.

Помогает ли это?

2
ответ дан 5 December 2019 в 14:05
поделиться

У меня такая же ситуация (отправьте http-запрос из VBA в Excel); Я создал три объекта:

Set HttpReq = CreateObject("WinHttp.WinHttpRequest.5.1") 

- для класса HTTP-запроса и

Set fsobj = CreateObject("Scripting.FileSystemObject")
Set txtobj = fso.OpenTextFile("C:\PKCERT.PEM")

- чтобы получить в переменной содержимое сертификата, передать его в HttpReq.SetClientCertificate ,

certificate_data = txtobj.ReadAll
HttpReq.SetClientCertificate (certificate_content)

Итак, я может отправить запрос вместе с сертификатом открытого ключа, как обычно,

HttpReq.Send

PS Я нашел скрипт на http://www.808.dk/?code-simplewinhttprequest - в моем случае он работал нормально , надеюсь и на ваше.

2
ответ дан 5 December 2019 в 14:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: