我試圖在PL/SQL中調用REST WebService,但它不起作用。我得到這個錯誤:如何使用PL/SQL中的表單數據和參數發送POST請求
Content-type must be multipart/form-data
以下是我有:
DECLARE
req UTL_HTTP.REQ;
resp UTL_HTTP.RESP;
value VARCHAR2(1024); -- URL to post to
v_url VARCHAR2(200) := 'http://local/api/ws';
-- Post Parameters
v_param VARCHAR2(500) := 'art=11111\&qty=1';
v_param_length NUMBER := length(v_param);
BEGIN
req := UTL_HTTP.BEGIN_REQUEST (url=> v_url, method => 'POST');
UTL_HTTP.SET_HEADER(req, 'User-Agent', 'Mozilla/4.0');
UTL_HTTP.SET_HEADER (r => req,
name => 'Content-Type',
value => 'multipart/form-data; charset=utf-8; boundary=/');
UTL_HTTP.SET_HEADER (r => req,
name => 'Content-Length',
value => v_param_length);
UTL_HTTP.WRITE_TEXT (r => req,
data => v_param);
resp := UTL_HTTP.GET_RESPONSE(req);
LOOP
UTL_HTTP.READ_LINE(resp, value, TRUE);
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;
這裏是捲曲的例子:
curl -v -X POST -H "Content-Type: multipart/form-data" -F "art=11111" -F "qty=1" http://local/api/ws
這個例子能正常工作,且捲曲,但我不知道爲什麼它不在PL/SQL中。 你能幫我嗎?
相關,但沒有解決方案:https://stackoverflow.com/questions/23925278/oracle-utl-http-post-encoding-multipart-form-data –