- ベストアンサー
JavaでPOST
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
POSTするいうことは、HTTPのクライアント側プログラムを作っているということですよね。切り出しはサーバ側の仕事なのでは? JavaサーブレットだとGETでもPOSTでも、サーブレットエンジンが切り出してくれるんですけどね。
その他の回答 (1)
- happy_people
- ベストアンサー率30% (25/81)
なんだか「切り出す」という言葉が通じていないみたいですね。 URLエンコードする関数というのはjava.net.URLEncoder.encodeですよね。このメソッドは文字列全体をx-www-form-url形式に符号化します。つまり「複数のname=valueのセット」の内、valueの部分しか渡してはいけません。全部を渡すと「=」や「&」までエンコードされてしまいます。「複数のname=valueのセット」は自分で作る必要があります。
お礼
-- 「複数のname=valueのセット」は自分で作る必要があります。 -- この部分をやってくれる関数がないかなと思っておりました。 普通は自分で作るものだ、ということで理解しました。 ありがとうございました。
関連するQ&A
- $_POSTで受け取ったデータの挙動について
PHP5.3を使用しています。そこで、 <?php $var1 = $_POST["var1"]; $var2 = $_POST["var2"]; $var3 = $_POST["var3"]; $var4 = ; // 誤った記述だがvar1~var3のどれかが代入される ?> 上のコードのサンプルにも入れましたが、このように記述すると受け取った引数うちのどれかが$var4に代入されるようです。私の環境では2番目の引数が代入されやすいようですが・・。 $_POSTはグローバル変数のはずですが、それを代入の右辺に用いていないのに値が代入されてしまうという挙動の原因をご存知の方がおられましたらご教授願います。そもそもエラーレポートをしている場合、上野記述はエラーとして出されるとは思いますが・・・
- ベストアンサー
- PHP
- Java(Servlet,JSP)を使用してあるURLにHTTPリクエスト(POST)を送信する方法
あるWeb APIを使用したWEBアプリケーションを作成しています. JavaのServletやJSPで実装していますが,サンプルではGETでリクエストを送る方法だけが紹介されていました. APIがPOSTに対応しているので,POSTでリクエストを送信しようと思います. サンプルは以下のようになっていましたが,POSTでリクエストを送信する場合,どう変更すれば良いでしょうか? URL url = new URL("http://xxxxxx.xx/xx/?q=" + URLEncoder.encode(request.getParameter("data"), "UTF-8")); URLConnection con = url.openConnection(); InputStream stream = con.getInputStream(); リクエストは日本語を含むデータをパラメータに含める予定です.
- ベストアンサー
- Java
- JAVAからコマンドプロンプトに文字を入力したいです(つ;)
Javaのプログラムからコマンドプロンプトに文字を入力して(プログラムにアドレスを埋め込んでいても大丈夫です★),アプリケーションにアクセスして,そのアプリケーションから得る結果を再びJavaのプログラムに返すようなプログラムを書きたいのですが分からなくて困っています(つ;) 何かサンプルプログラムをお持ちの方いらっしゃいませんか??
- 締切済み
- Java
- Javaのプログラムについて教えて下さい
//Sample.java class Sample void methodA(int temp) if(temp == 0) String str = new String("Exception"); Integer.parseInt(str); else if(temp == 1) int[] array = new int[temp]; else Exception exc = new Exception(); throw exc; //SampleMain.java class ExceptionMain public static void main(string[] args) Sample sam = new Sample(); Int temp = Integer.parseInt(args[0]); Sam.method(temp); } } このプログラムの場合、ExceptionMainに新たにコードを加えて、コマンドライン引数が0,1,その他の場合に例外メッセージを出力するプログラムを教えて下さい。
- ベストアンサー
- Java
- java起動時の日本語引数文字化けについて
java初心者です。 C++ソースからCreateProcess関数を用いてjava.exeを起動し、アプリケーションを起動させるアプリケーションを作成しています。 現在、java側で日本語が文字化けしてしまい、期待する動作が得られていません。 具体的には起動するjavaアプリケーションに引数としてパスを渡しており、そのパスに 日本語が含まれていると文字化けにより解釈できないという状況です。 日本語がアプリケーション内部で正しく利用できるようにはどのようにすれば良いでしょうか。 環境は以下の通りです。 ※情報が足りない等ありましたらお願い致します。。 OS:WindowsXP C++の開発環境:VC6 CreateProcess関数起動時の文字コード:UTF8 java開発環境:eclipse3.5 javaの引数はStringで受けるのですが、java内部ではUTF16らしいので、UTF8で記述された 文字列をUTF16として読むため文字化けしているのかなと調べた結果推測しています。 だとすると、java側で引数で受けた文字列をUTF-8からUTF-16に変換すれば良いのかなと 考えています。 ではその場合どのような処理が必要になるのでしょうか。(String#getBytes()を使う?) 後、javaコンパイル時にエンコードを指定するという方法もあるようですが、その方法は 他へ影響が大きいため、利用できそうにありません。 情報が足りない等あればお願い致します。 ご回答よろしくお願い致します。
- 締切済み
- Java
- Webから得るJAVAプログラム
わたしの入手した「JAVAプログラング技法」(堀内泰輔訳)に、「逆アセンブラ(javap)は、ソースコードが入手できないコンパイル済みのJavaプログラム(例えば読者がWebから得るJavaプログラム)を、元のソースコードに戻すための手ごろなツールです。」(24頁)と説明されています。WebからJavaプログラム(のバイトコード)を得る方法を教えて戴けないでしょうか。
- 締切済み
- Java
- POSTメソッドで取得したデータをシェルスクリプトCGI経由でJava
POSTメソッドで取得したデータをシェルスクリプトCGI経由でJava実行時の引数に渡す方法 HTML中級、Java、Unix系のシェルスクリプトに関して初級程度の知識があります。 Javaで書かれたプログラムを用いた、ブラウザ上で動作する CGIによるサーバサイド・アプリケーションを作ろうとしています。 http://d.hatena.ne.jp/shin/20090118/p1 http://d.hatena.ne.jp/Bayside/20050915 http://www.cs.adfa.edu.au/~gfreeman/CGIRequest.html 等のサイトを参考に、シェルスクリプトを用いたCGIを経由して サーバ上でJavaを実行し、その出力結果(シェルのechoやJavaのSystem.out.printlnによる) をHTMLとして受け取り、ブラウザ上で表示する所までうまくいきました。 上記のCGIに宛てて、別のHTML上の入力フォームからPOSTメソッドで文字列のデータを送信し、 その値をJavaに引数として渡してやりたいと考えています。 http://ameblo.jp/new3bon/entry-10210338319.html http://waitwg.org/~pc-qa/?CMD=DCNT&CID=8 等から、POSTで送られたデータはシェルスクリプト上の標準入力に格納されると分かり、 #!/bin/bash echo cat cat >> ./ttt.txt URLエンコードされたパラメータを上記コードで表示させることまではできました。 また、コマンドラインからJavaを実行する際の引数は http://www.02.246.ne.jp/~torutk/javahow2/commandline.html Java側のmainメソッドの引数として受け取れることは分かりました。 これらの方法を組み合わせて、CGIとしてJavaプログラムが実行される際に HTML上のフォームからPOSTメソッドで送信されたデータを渡してやりたいと考えています。 その際、シェルの標準入力に与えられたデータをシェルの変数に格納してやるか、 http://www.atmarkit.co.jp/flinux/rensai/shell03/shellstio.html に示されている標準入出力のすり替えを用いる等の方法ができないかと考えているのですが、 シェルスクリプトやJava上のどの段階で、どのようなコードを書けばいいのか分からずにいます。 (下記コードでは、各種パスを通す際に標準入出力の中身が書き換えられる前らしいと見当はついているのですが……) 複数の要素が込み入って複雑なことになっていますが、 解決方法をご存知の方がおられましたら、ご教唆のほど願います。 下に書きかけのシェルスクリプトのコードを書いておきます。 #!/bin/sh JAVA_HOME=/usr/java/jdk1.6.0_20 PATH=$PATH:$JAVA_HOME/bin CLASSPATH=.:$JAVA_HOME/lib/mysql-connector-java-5.1.12-bin.jar export JAVA_HOME PATH CLASSPATH /usr/java/jdk1.6.0_20/bin/java \ (中略) Main
- ベストアンサー
- その他([技術者向] コンピューター)
- JavaのクラスをCアプリケーションから起動。。?
Javaにて、引数として渡されたURLに 接続するクラスを作成します。 それをCで作ったアプリケーションから、 URLを引数として渡し、起動させるようなものを 考えています。 この時、C言語からJavaで作った上記のようなクラスを 呼び出すにはどうしたらよいのでしょうか。 また、この場合のJavaの処理として、 指定URLに対して、GETではなく、POSTを行うには どのようにすれば可能でしょうか。 具体的な方法、参考になる文献など、 ご存知の方、いらっしゃいましたら、ご教授願います。
- ベストアンサー
- Java
- javaのメソッド呼び出し
javaで質問があります。メソッドを呼び出すとき、 クラス.メソッド(引数)だと思いますが、 「.」が2つあるものがあります。 どういったものでしょうか? あるプログラムに Code.PerComFlag.ReCom.equals(atmlogDTO.getatmComFlg()) のがありました。 また、javaの本に System.out.println(・・・) という記述もあります。 よろしくお願いします。
- ベストアンサー
- Java
補足
おっしゃる通り、Javaのクライアントプログラムを作っています。POSTするプログラムです。URLエンコードをする部分がわかりません。 URLエンコードする関数は見つけました。この関数にURLエンコードしたい「複数のname=valueのセット」を丸ごと入力すれば、空白+に、文字は16進数に、などと変換してくれるのでしょうか? それとも、クライアントプログラムが独自に「複数のname=valueのセット」を文字列処理で、URLエンコードする部分を切り出すといったことが必要になるのでしょうか。