Dzień dobry.
Mam problem z funkcją, która czyta plik xml. Oryginał pliku xml jest umieszczony na serwerze Apache i funkcja działa poprawnie. Po skopiowaniu i skonfigurowaniu pliku xml na IIS (inny serwer) dostaję poniższą odpowiedź:
l_resp: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN""http://www.w3.org/TR/html4/strict.dtd"> <HTML><HEAD><TITLE>Length Required</TITLE> <META HTTP-EQUIV="Content-Type" Content="text/html; charset=us-ascii"></HEAD> <BODY><h2>Length Required</h2> <hr><p>HTTP Error 411. The request must be chunked or have a content length.</p> </BODY></HTML>
Kod funkcji:
declare l_http_req UTL_HTTP.REQ; l_http_resp UTL_HTTP.RESP; l_response XMLTYPE; l_value CLOB; l_resp VARCHAR2(32000); i int := 1; BEGIN UTL_HTTP.SET_PERSISTENT_CONN_SUPPORT(TRUE); l_http_req := UTL_HTTP.BEGIN_REQUEST(Pck_Gfis_Common_Util.pv_config_url, 'POST', 'HTTP/1.0'); -- Sets up proper HTTP headers. -- UTL_HTTP.SET_HEADER(l_http_req, 'Content-Type', 'application/x-www-form-urlencoded'); UTL_HTTP.SET_HEADER(l_http_req, 'Host', Pck_Gfis_Common_Util.pv_tomcat_server); UTL_HTTP.SET_HEADER(l_http_req, 'Port', Pck_Gfis_Common_Util.pv_tomcat_port); -- l_http_resp := UTL_HTTP.GET_RESPONSE(l_http_req); BEGIN while i < 2 LOOP UTL_HTTP.READ_TEXT(l_http_resp, l_resp); l_value := l_value || l_resp; dbms_output.put_line('l_resp: ' || l_resp); i := i + 1; END LOOP; EXCEPTION WHEN UTL_HTTP.END_OF_BODY THEN NULL; END; UTL_HTTP.END_RESPONSE(l_http_resp); exception WHEN UTL_HTTP.TOO_MANY_REQUESTS THEN UTL_HTTP.END_RESPONSE(l_http_resp); END;
Co i jak powinienem ustawić, by móc czytać plik xml?
Z góry dziękuję za pomoc.
Pozdrawiam.
Artur.