Если у Вас есть установленный.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 проекты
Объект 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()
Хотя я не использовал компонент COM (WinHttpRequest), он похоже, вам нужен вызов SetClientCertificate перед вызовом send, согласно ссылке.
Помогает ли это?
У меня такая же ситуация (отправьте 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 - в моем случае он работал нормально , надеюсь и на ваше.