Можно ли перенаправить URL-адрес на другой с помощью веб-прокси (например, Fiddler) - PullRequest
5 голосов
/ 13 июня 2009

Я пытаюсь проанализировать файл WSDL, который находится на другом сервере, но имеет жесткий кодированный "localhost" по всему документу.

Когда я его получаю, очевидно, что программа жалуется на "отказ в соединении", потому что на моей машине ничего не работает.

Мой вопрос: возможно ли использовать веб-прокси (например, fiddler) для перенаправления этих запросов localhost на мой другой сервер, чтобы ссылки на WSDL были полными?

: - /

Спасибо

p.s. Я всегда мог починить пульт «wsdl», но ответственный парень будет здесь до следующей недели, и я хотел бы начать работать сегодня.

Ответы [ 4 ]

6 голосов
/ 14 июня 2009

Вы можете использовать Fiddler в качестве прокси на вашем компьютере, а затем переписать WSDL, чтобы сменить localhost на правильное имя компьютера.

В FiddlerScript CookBook есть пример того, как написать скрипт такого типа. Перейдите на эту страницу и выполните поиск «Удалить все теги DIV (и содержимое внутри тега DIV)». Просто измените регулярное выражение в соответствии с localhost и установите замену на имя машины, которую вы хотите использовать.

1 голос
/ 13 июня 2009

Если у вас есть SSH-доступ к машине, вы можете использовать переадресацию SSH-порта для этого. Я предполагаю, что вы используете Windows (на основе тега C #), поэтому вы можете использовать Putty, как описано здесь: Использование переадресации портов с PuTTY . Просто следуйте этим инструкциям, чтобы перенаправить нужный порт на «localhost» на сервер, обслуживающий WSDL.

В качестве альтернативы, если вы работаете на * nix-машине или Mac, используйте SSH со следующей командой:

ssh -L PORTYOUWILLUSE:localhost:PORTONSERVER username@serverhostname

Например, если WSDL обслуживается через порт 80, вы можете сделать

ssh -L 80:localhost:80 username@server

Как только вы вошли в систему (любым способом), любые запросы к localhost через порт 80 будут перенаправлены на сервер.

0 голосов
/ 13 июня 2009

Есть несколько способов достичь этого, но ни один из них не является особенно надежным в качестве долгосрочных решений, но вы упоминаете, что просто хотите что-то временное, пока разработчик не вернется.

Если все после того, как домен совпадает (если ваш удаленный URL-адрес такой же, как и у localhost), вы можете отредактировать запись localhost в файле hosts.

В system32 \ drivers \ etc, скопируйте файл "hosts" на рабочий стол. Откройте в блокноте и измените эту строку:

127.0.0.1   localhost

Измените IP-адрес (127.0.0.1) на ваш удаленный домен. Затем скопируйте файл hosts обратно в каталог etc. (Примечание: невозможно редактировать этот файл напрямую, от имени администратора или иным образом).

Если у вас есть несколько доменов в удаленной веб-службе, в IIS вам нужно изменить веб-сайт, чтобы он служил для запросов на «localhost», это может показаться немного странным, но это будет работать, потому что ваша машина будет запрашивает IP-адрес сервера, но указывает домен запроса как "localhost". Щелкните правой кнопкой мыши веб-сайт в IIS и выберите свойства, затем добавьте домен «localhost» в список значений HTTP-заголовка, поддерживаемых этим веб-сайтом. Вы можете игнорировать все это, если ваш веб-сайт в IIS будет обслуживать контент, если вы обращаетесь к нему через IP-адрес. Если этот один IP-адрес используется несколькими веб-сайтами (что обычно имеет место), вы получите ошибку «Bad hostname» от IIS, когда он попытается найти «localhost» и не сможет найти какой веб-сайт направить просьба к.

Другая возможность - использовать персональный прокси-сервер с именем Proxomitron . Он немного старый и больше не разрабатывается, но очень прост в настройке и очень надежен.

После того, как вы установили его, откройте его и нажмите «Config» - измените порт, который он прослушивает, на 80. Затем вам нужно создать правило перенаправления (на самом деле это не перенаправление, скорее переписывание URL) , Вам нужно будет быстро прочитать документы , чтобы понять, как добавить свой собственный редирект, но есть множество примеров, которые поставляются с приложением. Правило, которое вы ищете: RDIR:

$ RDIR () Более подлый и перенаправляет соединение в Proxomitron, не сообщая вашему браузеру. Это полезно, если вы хотите, чтобы ваш браузер думал, что он движется в одном месте, а на самом деле он движется куда-то еще.

0 голосов
/ 13 июня 2009

Если вы хотите изменить его только на несколько минут во время анализа WSDL, вы можете изменить файл HOST и указать «localhost» на удаленный IP-адрес. Файл hosts находится в папке «C: \ Windows \ System32 \ drivers \ etc» в Windows VISTA / XP.

...