Как переслать SOAP-запрос в ASP.NET на IIS6? - PullRequest
0 голосов
/ 13 ноября 2011

Я пытаюсь создать приложение (или веб-сервис), размещенное на IIS 6, которое будет пересылать запросы SOAP другому приложению веб-служб с использованием измененных учетных данных.

Пока у меня есть что-то подобное в Page_Load моего приложения:

HttpWebRequest newRequest = (HttpWebRequest)WebRequest.Create(newUrl);
newRequest.ContentType = original.ContentType;
newRequest.ContentLength = original.ContentLength;
newRequest.Method = original.HttpMethod;
newRequest.UserAgent = original.UserAgent;
newRequest.Credentials = new NetworkCredential("login","password","domain");
HttpWebResponse response = (HttpWebResponse)newRequest.GetResponse();

Проблема в том, что он падает в последней строке, потому что ContentLength> 0, и я не открываю RequestStream, потому что я не знаю, как получить его из оригинального запроса.

Я не назвал этот вопрос "Как получить SOAP-запрос от HttpWebRequest", потому что я считаю, что есть более простое решение для того, что я пытаюсь сделать. Может быть, какой-то диспетчер запросов, как в Java.

Любая помощь будет принята с благодарностью.

1 Ответ

1 голос
/ 13 ноября 2011

В запросе SOAP нет ничего волшебного - в конце концов, это всего лишь HTTP.Вы должны быть в состоянии скопировать тело запроса, используя что-то вроде этого:

Context.Request.InputStream.CopyTo(newRequest.GetRequestStream());

Также вы должны убедиться, что скопировали все другие важные заголовки HTTP, которые могут быть установлены в исходном запросе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...