私はPL/SOLで新しく、パラメータを取るoracleからwebserviceを呼び出そうとしています...メッセージを送信します...実際には、アラビア語では疑問符でメッセージを送信していますか? 。 は、私は私のコンテンツタイプではなく、何を除いて働いている変更しようとしました:アラビア語パラメータを使用してOracleサービスからWebサービスを呼び出す
UTL_HTTP.set_header(l_http_request、 'Content-Typeの'、 ';のcharset =ウィンドウ-1256のアプリケーション/ x-www-form-urlencodedで');
アラビア語で同じ問題があります。あなたは私にヒントを与えることができますか?以下は私のコードです。
NB:同じWebサービスを呼び出して.netクライアントからパラメータを渡すと、メッセージはアラビア語で正しく送信されます。 あなたが
PROCEDURE HIMS_SEND_SMS (username Varchar2 ,
password varchar2,
phone varchar2,
code varchar2,
message varchar2,
P_RESPONSE OUT VARCHAR2) AS
l_param_list VARCHAR2(512);
l_http_request UTL_HTTP.req;
l_http_response UTL_HTTP.resp;
l_response_text VARCHAR2(32767);
soap_request VARCHAR2(1024);
i integer;
BEGIN
dbms_output.enable(100000);
utl_http.set_transfer_timeout(300);
l_param_list := 'username='|| username ||chr(38)|| 'password='|| password ||chr(38)|| 'phone='|| phone ||chr(38)|| 'code='|| code ||chr(38)|| 'message='|| message;
l_http_request := UTL_HTTP.begin_request ('http://serviceexample.com/service.asmx/SendSMSHTTP'
, 'POST'
, 'HTTP/1.1');
UTL_HTTP.set_header(l_http_request, 'Content-Type', 'application/x-www-form-urlencoded; charset=windows-1256');
--UTL_HTTP.set_header(l_http_request, 'Content-Type', 'text/plain; charset=windows-1256');
--UTL_HTTP.set_header(l_http_request, 'Content-Type', 'application/soap+xml; charset=ISO-8859-6');
--UTL_HTTP.set_header(l_http_request, 'Content-Type', 'text/xml');
--UTL_HTTP.set_header(l_http_request, 'Content-Type', 'text/xml; charset=UTF-8');
--UTL_HTTP.set_header(l_http_request, 'Content-Type', 'text/xml; charset=ASCII');
UTL_HTTP.set_header(l_http_request, 'Content-Length', LENGTH(l_param_list));
UTL_HTTP.write_text(l_http_request, l_param_list);
l_http_response := UTL_HTTP.get_response(l_http_request);
UTL_HTTP.read_text(l_http_response, l_response_text);
-- l_response_text:= substr(l_response_text,92,1);
P_RESPONSE := l_response_text;
UTL_HTTP.end_response(l_http_response);
EXCEPTION
WHEN UTL_HTTP.end_of_body
THEN UTL_HTTP.end_response(l_http_response);
END HIMS_SEND_SMS;
は、まあ、私はこのソリューションを試してみましたが、私はまだ同じ問題を抱えている:これを試してみてください。それは、オラクル自身がアラビア語のパラメータを受け入れていないようです。言い換えれば、アラビア語を書こうとするたびに、オラクルはそれらをアラビア語に変換しています。私のwebsericeを呼び出す前に。どのようにこの問題を解決するための任意のアイデアですか? –
@ H.Alそれは確かにOracleではありません。それはあなたのデータベース設定かもしれません。次のクエリを実行しようとしましたか? 'select value from nls_database_parameters where parameter = 'NLS_CHARACTERSET';'。何を手に入れますか? – Hawk
私はアラビア語を書こうとするたびにAR8MSWIN1256 –