- PR -

Delphi7でのWebServiceクライアントの作成

1
投稿者投稿内容
DDJ
会議室デビュー日: 2004/09/04
投稿数: 2
投稿日時: 2004-09-04 15:30
お世話になります。
Delphi7でWebServiceクライアントを作成を試みていますが
日本語文字列をWebServiceに渡すとすべて????と文字化けしてしまいます。
テスト用に作成(C#.Net)したサーバー側に問題があるのかとも
思いましたが、公開中の(郵便番号検索Webサービス等)でも
日本語がうまく渡せていないようです。
WSDLインポーターで生成したコードに手を加える必要があるのでしょうか?
Jubei
ぬし
会議室デビュー日: 2002/03/02
投稿数: 830
お住まい・勤務地: 関西
投稿日時: 2004-09-04 20:05
諸農です。

Delphi7なので、.NETとはまったく関係ないのですが、
ちょっと気になったのでコメントします。
継続する場合は適切なML等に移動して行った方がいいと思います。

THTTPRIOは使われていますか?
THTTPRIOのHTTPWebNodeプロパティからネストするUseUTF8InHeaderを
TrueにセットすればOKです。

サービスの呼び出しは以下の通り
コード:

//Service1SoapはWSDLインポータで作成されたサービスインタフェース
procedure TForm1.Button1Click(Sender: TObject);
var
  sv:Service1Soap;
begin
  sv := HTTPRIO1 as Service1Soap;
  Label1.Caption := sv.ReturnMessage(Edit1.Text);
end;



サービス側は受け取り文字列をそのまま返します。
コード:
   [WebMethod]
   public string ReturnMessage(string AMessage)
   {
       return AMessage;
   }



確認はDelphi7で行いました。

_________________
諸農和岳
Powered by Turbo Delphi & Microsoft Visual Studio 2005

十兵衛@わんくま同盟
http://blogs.wankuma.com/jubei/
DDJ
会議室デビュー日: 2004/09/04
投稿数: 2
投稿日時: 2004-09-04 21:04
場違いなスレ立ててしまい申し訳ありませんでした。
諸農様の方法で無事解決できました。

自分なりに調べた結果、Content-Typeヘッダーでのcharsetが指定UTF-8に
設定できていないのだろうとは予測していましたが、どこでcharsetを指定
すればよいのかがわかりませんでした。
Content-Typeからヘルプをたどったのですが、THTTPRIOとの繋がりを見つ
け出せずどこで指定するんだ??と悩んでおりました。
ご指摘の後、再度ヘルプを確認すると探している時にみつけた記憶が・・
何故か(ぱにっくっていたのか?)見落としてしまっていたようです。

どうも有難うございました。
1

スキルアップ/キャリアアップ(JOB@IT)