ブラウザへのPOSTデータの送信について

2,102 views
Skip to first unread message

hc.nakahara

unread,
Aug 24, 2009, 6:17:24 AM8/24/09
to 日本Androidの会
中原と申します。

ブラウザへの連携について教えてください。
通常ブラウザは以下のようにstartActivity()にて起動できるかと思います。
Intent i = new Intent(Intent.ACTION_VIEW, Uri.parse("サイトURL"));
startActivity(i);

で、ブラウザ連携する際にGetメソッドに関してはそのままURLの後ろに
クエリー文字列を書けば通知ができました。
しかし、POSTでデータを通知したく思っているのですが、いろいろ探したのですが
方法がわかりませんでした。
(そもそもできるのか?)

ご存知の方ご教示頂けないでしょうか
よろしくお願いします。

gac

unread,
Aug 26, 2009, 12:29:44 AM8/26/09
to android-g...@googlegroups.com
水上です。

ブラウザに対してIntentを用いてPOSTを投げるというのが出来るかわかりませんが、
POSTでデータをサーバアプリに送信して結果をブラウザで見るといった事ならば
可能です。

例えば、データベースにPOSTでなげてその結果増えたリストを取得する場合
アプリケーション側でPOSTでデータを送信した後、
Intent使ってその結果を表示させるURL渡せばいいのかなと思います。
(サーバ側のアプリケーションもご自身で開発するのであれば、あたかもブラウザで送信
したように見せる事も可能なだと思います。)

アプリ側でPOSTを投げるコードを一応添付します。
URL hogeUrl = new URL(http://hogehoge.com);
HttpURLConnection con = (HttpURLConnection)hogeUrl.openConnection();
con.setRequestMethod("POST");
con.setDoOutput(true);// POSTでデータ送信
OutputStreamWriter doo = new OutputStreamWriter(con.getOutputStream());
dos.write(header);
dos.flush();
dos.close();
con.dicsonnect();

yamada masaki

unread,
Aug 26, 2009, 12:46:28 AM8/26/09
to android-g...@googlegroups.com
山田です

自分は org.apache.http パッケージを使って色々やりました。
こちらの場合cookieの処理とかもやってくれるので
ログインが必要なサイトなどにPOSTするなら有効だと思います。

hc.nakahara

unread,
Aug 26, 2009, 7:34:05 AM8/26/09
to 日本Androidの会
回答ありがとうございます。

水上様

HTTP通信するだけならこのコードでPOSTデータは送信できますね
ただ結果はHTMLで返ってくるだけですよね?
結果をそのままブラウザ上に表示したいだけなんですが・・・
サーバー側で結果を表示するものを用意しないとダメそうですか?

山田様

org.apache.http パッケージですか
ちょっと見てみます。
ほんのちょっとぐぐった感じではHttpURLConnection と似たような感じなのかな?と思ったんですが
違いますかね?
あんまりわかってなくて、すいません。。。

yamada masaki

unread,
Aug 26, 2009, 10:40:59 AM8/26/09
to android-g...@googlegroups.com
山田です

HttpURLConnectionは単純に接続するだけです。
org.apache.http は httpクライアントを作るためのライブラリで、
ブラウザで接続しているときの一連のやりとりを模倣する事ができます。

認証などの複雑な動きをする場合は org.apache.http を使うと良いと思います。


2009/08/26 20:34 に hc.nakahara<hc.na...@gmail.com> さんは書きました:

egg

unread,
Aug 26, 2009, 10:03:55 PM8/26/09
to android-g...@googlegroups.com
中原さん

江川と申します。

String contents = "<html lang=\"ja\"> " +
"<body onLoad=\"document.form.submit()\">" +
"<form name=\"form\" id=\"form\" method=\"post\" action=\"http://・・・・・・・\"> " +
"<input type=\"hidden\" name=\"hoge\" id=\"hoge\" value=\"hogehoge\"> " +
"</form>" +
"</body> " +
"</html>";

WebView webview = (WebView) findViewById(R.id.webview);
・・・
webview.loadData(contents, "text/html", "UTF-8");

例えばこんな感じですか?
これはWebViewですがブラウザでも同じようなHTMLを食べさせれば
出来そうな気がします。

------------------------------------------
EGAWA Takashi



2009/08/26 20:34 に hc.nakahara<hc.na...@gmail.com> さんは書きました:
>
Reply all
Reply to author
Forward
0 new messages