🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
HTTP

HTTP(Hypertext Transfer Protocol)とはweb上でHTML等のコンテンツを交換するために使われるアプリケーション層の通信プロトコルです。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

Q&A

解決済

1回答

991閲覧

アンドロイドアプリでボタン押下時にネットページに接続のみする方法。

ToaZI

総合スコア39

HTTP

HTTP(Hypertext Transfer Protocol)とはweb上でHTML等のコンテンツを交換するために使われるアプリケーション層の通信プロトコルです。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

0グッド

0クリップ

投稿2021/03/25 14:15

編集2021/03/25 15:21

アンドロイドスタジオアプリを作成しており、アプリ内のボタン押下時に
決められた値を保存するPHPで作成されたWebページに接続のみを行いたいです。
(PHPには接続されたときにDB保存されるプログラムが入っています。(値変更なし))

アプリ上で画面表示もせず、値を渡すこともしません。

Webページ接続のみを行いたいのですが、調べたうえ作成したのですがうまく動きません。
Try関数の中でエラーが発生しcatchに流れてしまいます。

Webページ表示する何かが必要なのでしょうか?

ご教示をよろしくお願いいたします。

java

1public class MainActivity extends AppCompatActivity { 2 URL url = null; 3 @Override 4 protected void onCreate(Bundle savedInstanceState) { 5 super.onCreate(savedInstanceState); 6 setContentView(R.layout.activity_main); 7 8 Button button = findViewById(R.id.button2); 9 TextView text = findViewById(R.id.textView); 10 button.setOnClickListener(new View.OnClickListener() { 11 @Override 12 public void onClick(View v) { 13 try { 14 url = new URL("http://zxxxxxxx.xxxxxx.jp/xx.php"); 15 HttpURLConnection http = (HttpURLConnection)url.openConnection(); 16 http.setRequestMethod("GET"); 17 http.connect(); 18 text.setText("成功"); 19 } catch (IOException e) { 20 e.printStackTrace(); 21 text.setText("失敗"); 22 } 23 24 25 } 26 27 28 }); 29 } 30}
2021-03-25 22:19:59.796 29290-29290/com.example.pareringtest W/System.err: java.io.IOException: Cleartext HTTP traffic to zirecord.schoolbus.jp not permitted 2021-03-25 22:19:59.797 29290-29290/com.example.pareringtest W/System.err: at com.android.okhttp.HttpHandler$CleartextURLFilter.checkURLPermitted(HttpHandler.java:124) 2021-03-25 22:19:59.797 29290-29290/com.example.pareringtest W/System.err: at com.android.okhttp.internal.huc.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:462) 2021-03-25 22:19:59.797 29290-29290/com.example.pareringtest W/System.err: at com.android.okhttp.internal.huc.HttpURLConnectionImpl.connect(HttpURLConnectionImpl.java:131) 2021-03-25 22:19:59.797 29290-29290/com.example.pareringtest W/System.err: at com.example.pareringtest.MainActivity$1.onClick(MainActivity.java:41) 2021-03-25 22:19:59.797 29290-29290/com.example.pareringtest W/System.err: at android.view.View.performClick(View.java:7252) 2021-03-25 22:19:59.797 29290-29290/com.example.pareringtest W/System.err: at com.google.android.material.button.MaterialButton.performClick(MaterialButton.java:1119) 2021-03-25 22:19:59.797 29290-29290/com.example.pareringtest W/System.err: at android.view.View.performClickInternal(View.java:7229) 2021-03-25 22:19:59.797 29290-29290/com.example.pareringtest W/System.err: at android.view.View.access$3500(View.java:821) 2021-03-25 22:19:59.797 29290-29290/com.example.pareringtest W/System.err: at android.view.View$PerformClick.run(View.java:27759) 2021-03-25 22:19:59.797 29290-29290/com.example.pareringtest W/System.err: at android.os.Handler.handleCallback(Handler.java:914) 2021-03-25 22:19:59.797 29290-29290/com.example.pareringtest W/System.err: at android.os.Handler.dispatchMessage(Handler.java:100) 2021-03-25 22:19:59.797 29290-29290/com.example.pareringtest W/System.err: at android.os.Looper.loop(Looper.java:224) 2021-03-25 22:19:59.797 29290-29290/com.example.pareringtest W/System.err: at android.app.ActivityThread.main(ActivityThread.java:7560) 2021-03-25 22:19:59.797 29290-29290/com.example.pareringtest W/System.err: at java.lang.reflect.Method.invoke(Native Method) 2021-03-25 22:19:59.797 29290-29290/com.example.pareringtest W/System.err: at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:539) 2021-03-25 22:19:59.797 29290-29290/com.example.pareringtest W/System.err: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:950)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

y_waiwai

2021/03/25 14:23

どういうふうになるんでしょうか。
ToaZI

2021/03/25 14:26

Webページ接続だけ行いたいです。
y_waiwai

2021/03/25 14:28

うまくいかないとはどういう動作となるんでしょうか また、それがどうなればいいんでしょう
ToaZI

2021/03/25 14:36

すみません、エラーについての表記が足りませんでした。 Tryの中でコネクトができず、catchに来てしまいます。 接続のみされればDBに規定値が追加されるのですが、確認したところつかされていなかったので 接続自体出来ていません。なので接続する方法を知りたいです。
hoshi-takanori

2021/03/25 15:10

Logcat にエラーメッセージが出るはずなので、まずそれをご確認ください。 https://developer.android.com/studio/debug/am-logcat?hl=ja たぶんパーミッションかスレッドか Cleartext HTTP traffic の問題だと思います。 https://araramistudio.jimdo.com/2018/03/15/android%E3%81%A7http%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%9F%E3%83%8D%E3%83%83%E3%83%88%E3%83%AF%E3%83%BC%E3%82%AF%E6%8E%A5%E7%B6%9A/ https://qiita.com/b_a_a_d_o/items/afa0d83bbffdb5d4f6be
ToaZI

2021/03/25 15:48

hoshi-takanori様 ありがとうございます。 最後のURLを参考に読み込みがうまくいっているところまでログ確認ができました。 ただ接続はできず、http.connect();の時点でcatchに流れて行ってしまいます。 (処理の間にセットテキストすることで確認) ログチャットも参考URLのものしか表示されません。 非同期処理というものが必須なのでしょうか? また、非同期処理の場合、Webページ接続のみを行う場合GET,もしくはPOSTどちらになるのでしょうか? よろしくお願いいたします。
ToaZI

2021/03/25 17:12

ありがとうございます。 特に受け取るものがない場合の処理はどうすればよいのでしょうか? 参考URLの InputStream is = connection.getInputStream(); BufferedReader reader = new BufferedReader(new InputStreamReader(is, "UTF-8")); String line = ""; while ((line = reader.readLine()) != null) sb.append(line); is.close(); を削除してconnectionを何かで使用する必要がありますか? 本当にありがとうございます。
hoshi-takanori

2021/03/25 17:33

たぶんその部分を削除して単に disconnect すればいい気がしますが、やったことない (普通はそんなことはしない) ので分かりません。
m.ts10806

2021/03/26 00:39

リクエスト先はAPIなんでしょうか。それなら「ページ接続」という概念にこだわってる限りは進まないと思います。 大目的としては何をしたいんですか?(ざっくりした質問内容なのでざっくりした聞き方になります)
ToaZI

2021/03/26 00:49

hoshi-takanori様 いつも本当にありがとうございます。 もう少し調べてみます。
ToaZI

2021/03/26 00:56

m.ts10806様 大目的としては離れている二台のスマホを一つはスタート、もう一つはストップとしてストップウォッチのようなものを作りたいです。そのためラグ計算のためにネット上のPHPでタイムスタンプをDB保存したいと考えています。
guest

回答1

0

自己解決

AsyncTaskを使用することでネットページに接続のみすることが可能でした。

投稿2021/04/01 13:38

ToaZI

総合スコア39

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問