- - PR -
クライアント(VB) サーバ(JAVA)
1
| 投稿者 | 投稿内容 | ||||
|---|---|---|---|---|---|
|
投稿日時: 2004-02-27 16:25
クライアント(VB)の画面の情報をサーバ(JAVA)にPOSTした情報をgetParameterで取得したいのですが、うまくいきません。
getInputStreamでは取得できているのですが・・・・ VB側はWininetAPIを使用しています。 誰かわかる方、教えてください。 | ||||
|
投稿日時: 2004-02-27 16:38
これじゃあちょっとなんとも言えませんよ。 せめて、プラットフォーム(クライアントはWindowsでしょうけれど、VBなのでOSの バージョンも分かった方が良いでしょう。サーバはJavaというだけでは分からないので 具体的に書いて下さい)やVB、Javaのバージョンも書いて下さい。 恐らく、サーバ(Java)にPOSTと書かれているので、VBのクライアントとServletの 通信を行っているということで良いですよね?うまくいかないというのは、何か エラーが出るのでしょうか。その場合はエラーの内容を投稿されると解決策が すぐに見つかるでしょう。 それから、ともかくHTTP通信がうまく行っているかのチェックを先にやった方が良いと 思われますので、そちらを先に行ったら如何でしょう。簡単なところだと、netstatで HTTPコネクションが張られたかどうかを確認するとか、あとはApacheのAxisという プロジェクトでHTTP通信を横取りしてGUIに表示できるツール(tcpmonというPure JavaのGUIツールです)を提供していますので、それを使うとか。 Apache Web Services - Axis http://ws.apache.org/axis/index.html [ メッセージ編集済み 編集者: おばけ 編集日時 2004-02-27 16:39 ] | ||||
|
投稿日時: 2004-02-27 18:15
おばけさん
クライアントはWin2000またはWinXPでVB6.0、サーバはWin2000でWebSphere5.0、JAVAはJ2SE1.4.2 ソースコードは <VB> pl_hInet = InternetOpen(App.EXEName, INTERNET_OPEN_TYPE_PRECONFIG, vbNullString, vbNullString, 0) pl_hConnect = InternetConnect(pl_hInet, cons_ps_PROVIDER, INTERNET_DEFAULT_HTTPS_PORT, vbNullString, vbNullString, INTERNET_SERVICE_HTTP, 0, 0) l_hRequest = HttpOpenRequest(pl_hConnect, "POST", hs_Address, vbNullString, vbNullString, 0, INTERNET_FLAG_SECURE, 0) l_Win32apiResultCode = HttpSendRequest(l_hRequest, vbNullString, Len(vbNullString), hs_SendData, Len(hs_SendData)) ※hs_SendData="DATE=12MAR2004" <Servlet> public class LinxServlet extends HttpServlet { public void doPost(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { System.out.println("##### Date -> " + (String)req.getParameter("DATE")); //##### Date -> null と表示される System.out.println("##### Length-> " + req.getContentLength());// //##### Length-> 14 と表示される ServletInputStream myIS = request.getInputStream(); InputStreamReader myISR = new InputStreamReader(myIS); BufferedReader myBR = new BufferedReader(myISR); StringBuffer myID = new StringBuffer(); String buf = new String(); strRet = ""; while ((buf = myBR.readLine()) != null) { myID.append(buf); System.out.println("##### getRequestData-> "+buf); //##### getRequestData-> DATE=12MAR2004 と表示される strRet += buf; } } です。 宜しくお願いします。 | ||||
|
投稿日時: 2004-02-27 19:36
VBは知らないのではずしてたらごめんなさい。
HTTPリクエストって改行で終わる必要があるように思うのですが、 hs_SendData="DATE=12MAR2004\r\n" のようにしてみるといかがでしょうか? | ||||
|
投稿日時: 2004-02-27 22:58
POST の場合、ヘッダに Content-type: application/x-www-form-urlencoded を指定する必要があった気がします。 | ||||
1
