PL / SQL-код для получения перенаправленного URL - PullRequest
2 голосов
/ 10 декабря 2011

Меня попросили написать код PL / SQL, чтобы получить URL целевой страницы.

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

Например, ссылка http://www.arabseed.com может быть перенаправлена ​​на http://www.arabseed.com/ar/home.html.

Таким образом, мой блок PL / SQL должен принимать первый URL и возвращать второй. Я посмотрел @ htp pkg в Oracle API, и это мне не сильно помогло.

Ответы [ 2 ]

4 голосов
/ 10 декабря 2011

Я почти уверен, что ваш начальник не хотел, чтобы другие люди выполняли вашу работу за вас.
Если вы посмотрите документацию UTL_HTTP , вы найдете примеры, которые делают 70%работы для вас.

В любом случае, вот что вы ищете (я надеюсь, вы сможете изменить только одну серию перенаправлений):

SET SERVEROUTPUT ON SIZE 40000

DECLARE
  req   UTL_HTTP.REQ;
  resp  UTL_HTTP.RESP;
  name  VARCHAR2(256);
  value VARCHAR2(1024);
BEGIN
  req := UTL_HTTP.BEGIN_REQUEST('http://www.arabseed.com');
  UTL_HTTP.SET_HEADER(req, 'User-Agent', 'Mozilla/4.0');
  UTL_HTTP.SET_FOLLOW_REDIRECT(req, 0);
  resp := UTL_HTTP.GET_RESPONSE(req);
  IF(resp.STATUS_CODE in (UTL_HTTP.HTTP_MOVED_PERMANENTLY,UTL_HTTP.HTTP_TEMPORARY_REDIRECT, UTL_HTTP.HTTP_FOUND))
  THEN
    FOR i IN 1..UTL_HTTP.GET_HEADER_COUNT(resp) LOOP
       UTL_HTTP.GET_HEADER(resp, i, name, value);
       if(name ='Location')
       THEN
             DBMS_OUTPUT.PUT_LINE('Redirecting to:' || value);
       END IF;
     END LOOP;
   END IF;  
  UTL_HTTP.END_RESPONSE(resp);
END;
0 голосов
/ 10 декабря 2011

из информации, которую вы нам дали, я могу придумать только это:

function get_redirected_url (url varchar2) return varchar2 is
begin
  case url
    when 'http://www.arabseed.com' then return 'http://www.arabseed.com/ar/home.html';
    when /* other URLs go here */
    else return '';
  end;
end;

Тем не менее, я уверен, что это не то, о чем вас просили. Вам придется уточнить свой вопрос.

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

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