Я не знаю VBA, но мне кажется, что вы делаете HTTP POST с учетными данными, а затем вы делаете HTTP GET, чтобы получить файл, который вы ищете. Я полагаю, что используемый вами класс хранит файлы cookie от запроса к запросу, и именно так работает аутентификация.
Предполагая, что в Go вы будете использовать библиотеку https://golang.org/pkg/net/http/cookiejar/ для хранения файлов cookie и https://golang.org / pkg / net / http / для выполнения фактических запросов.
Вы каждый раз передаете одну и ту же баночку с печеньем.
Что-то в этом роде (не точное или не проверенное):
package main
import (
"net/http"
"net/http/cookiejar"
)
func main() {
cookieJar, _ := cookiejar.New(nil)
client := &http.Client{
Jar: cookieJar,
}
resp, err := http.PostForm("http://example.com/loginform",
url.Values{"login": {"sdiscor"}, "password": {"sdiscor"}})
resp, err := client.Get("http://example.com/")
}
Забудьте о Java DART API и переключитесь на новый подход WebService API:
http://doubleclickadvertisers.blogspot.com/2009/06/webservices-api-jun-2nd-2009-release.html
Это API веб-сервисов или файл JAR, который вы предоставили? В последнем случае J # может быть опцией, и в этой теме есть несколько других опций моста: http://www.velocityreviews.com/forums/t140810-java-c-interop.html
As an aside may I recommend writing your web service in a RESTful way, rather (or in conjunction with) then SOAP? The benefit will be interoperability between any language that you may want to consume your service in the future, rather then only ones that can generate code based on WSDL. Just a thought.
Да, вы можете сделать это, и некоторое время назад нам приходилось делать нечто очень похожее.
Doubleclick API основан на Java и, по сути, представляет собой набор методов для опроса базы данных.
Вам нужно обернуть эти методы внутри веб-службы, используя что-то вроде Axis2, а затем развернуть веб-службу на сервере Tomcat (все это с открытым исходным кодом). Это предоставляет веб-сервис, и вы можете затем вызывать веб-сервис из любого, что вам нравится.
Итак, в вашем случае вы добавляете ссылку на веб-сервис в Visual Studio, а затем ваш класс C # будет вызывать веб-сервис, который вызывает Doubleclick Java. method.
Фактический код Java минимален (приблизительно 10 строк), поскольку все, что он делает, - это вызов, а затем форматирует вывод. Развертывание занимает больше времени, чем написание кода!
Наша среда разработки Java - Eclipse, и я написал об этом в блоге здесь .
вы добавляете ссылку на веб-сервис в Visual Studio, а затем ваш класс C # будет вызывать веб-сервис, который вызывает Java-метод Doubleclick.Фактический код Java минимален (приблизительно 10 строк), поскольку все, что он делает, - это вызов, а затем форматирует вывод. Развертывание занимает больше времени, чем написание кода!
Наша среда разработки Java - Eclipse, и я написал об этом в блоге здесь .
вы добавляете ссылку на веб-сервис в Visual Studio, а затем ваш класс C # будет вызывать веб-сервис, который вызывает Java-метод Doubleclick.Фактический код Java минимален (приблизительно 10 строк), поскольку все, что он делает, - это вызов, а затем форматирует вывод. Развертывание занимает больше времени, чем написание кода!
Наша среда разработки Java - Eclipse, и я написал об этом в блоге здесь .
IKVM.NET может быть вашим решением. Это виртуальная машина Java, которая переводит байт-код Java в .NET IL.
Вы можете скомпилировать Java API (предоставленный в виде jar или исходных файлов) с помощью ikvmc.exe в сборку .NET и затем ссылаться на эту сборку из вашего проекта C #.
IKVM действительно имеет ограниченную поддержку пользовательских интерфейсов Java (AWT), но поскольку это API, это не должно иметь значения.
Я не пробовал это сам, поэтому могу не гарантирую, что это действительно работает.
Я бы сказал, что использование слоя J # может быть хорошим вариантом. Я использовал его лишь однажды назад, но он помог мне.
На самом деле мы пошли несколько другим способом сделать это.
Хотя это не оптимальный метод, он работает для этого процесса в краткосрочной перспективе, а в долгосрочной перспективе, когда решение SOAP становится доступным, веб-сервис легко обновляется.