日期:2014-05-16  浏览次数:20421 次

在oracle中通过utl_http获得指定网页内容

SET serveroutput ON SIZE 40000

DECLARE
? v_text varchar2(100) := '试验%S已ok';--不能有空白
? req??? utl_http.req;
? resp?? utl_http.resp;
? value? VARCHAR2(1000);

BEGIN
? v_text := replace(v_text,'%','%25');
? v_text := replace(utl_encode.text_encode(v_text), '=', '%');
? req??? := utl_http.begin_request('http://ajax.googleapis.com/ajax/services/language/translate?v=1.0&q=' ||
?????????????????????????????????? v_text || '&langpair=zh|en');
? resp?? := utl_http.get_response(req);
? LOOP
??? utl_http.read_line(resp, value, TRUE);
??? value := replace(value,'% S','%S');
??? value := replace(value,'{"responseData": {"translatedText":"','');
??? value := replace(value,'"}, "responseDetails": null, "responseStatus": 200}','');
??? dbms_output.put_line(value);
? END LOOP;
? utl_http.end_response(resp);
EXCEPTION
? WHEN utl_http.end_of_body THEN
??? utl_http.end_response(resp);
END;