質問編集履歴

3

変更

2017/11/18 07:12

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -62,7 +62,7 @@
62
62
 
63
63
 
64
64
 
65
- URL url = new URL("http://raspberrypi.local:8080/on");//url設定
65
+ URL url = new URL("http://XX.X.XX.XX:8080/on");//url設定
66
66
 
67
67
  HttpURLConnection conn = (HttpURLConnection) url.openConnection();
68
68
 

2

変更

2017/11/18 07:12

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -2,8 +2,196 @@
2
2
 
3
3
 
4
4
 
5
+
6
+
7
+ ###MainActivity.java
8
+
9
+ ```java
10
+
5
- openStream ()という関数を見つけたのですがこれで開くことは可能でしょうか?
11
+ package com.example.xxx.http;
6
12
 
7
13
 
8
14
 
15
+ import android.os.AsyncTask;
16
+
17
+
18
+
19
+ import java.io.BufferedReader;
20
+
21
+ import java.io.IOException;
22
+
23
+ import java.io.InputStream;
24
+
25
+ import java.io.InputStreamReader;
26
+
27
+ import java.net.HttpURLConnection;
28
+
29
+ import java.net.URL;
30
+
31
+
32
+
33
+
34
+
35
+ public class HttpTask extends AsyncTask<Void,Void,Void> {
36
+
37
+ @Override
38
+
39
+ protected Void doInBackground(Void... params) {
40
+
41
+ try {
42
+
43
+ getGET();
44
+
45
+ } catch (IOException e) {
46
+
47
+ e.printStackTrace();
48
+
49
+ }
50
+
51
+ return null;
52
+
53
+ }
54
+
55
+
56
+
57
+ public String getGET() throws IOException {
58
+
59
+ final int CONNECTION_TIMEOUT = 30 * 1000;
60
+
61
+ final int READ_TIMEOUT = 30 * 1000;
62
+
63
+
64
+
65
+ URL url = new URL("http://raspberrypi.local:8080/on");//url設定
66
+
67
+ HttpURLConnection conn = (HttpURLConnection) url.openConnection();
68
+
69
+ //URL が参照するリモートオブジェクトへの接続を表す URLConnection オブジェクトを返します。
70
+
71
+ conn.setConnectTimeout(CONNECTION_TIMEOUT);
72
+
73
+ // この URLConnection が参照するリソースへの通信リンクのオープン時に、指定されたミリ秒単位のタイムアウト値が使用されるように設定します。
74
+
75
+ conn.setReadTimeout(READ_TIMEOUT);
76
+
77
+ // 指定されたタイムアウトまでの読み取りタイムアウトをミリ秒単位で設定します
78
+
79
+ conn.setRequestMethod("GET");
80
+
81
+ conn.connect();// この URL が参照するリソースへの通信リンクを確立します
82
+
83
+ int statusCode = conn.getResponseCode();// HTTP 応答メッセージから状態コードを取得します
84
+
85
+
86
+
87
+ if(statusCode == HttpURLConnection.HTTP_OK){//上のコードがOKだった時
88
+
89
+ StringBuilder result = null;
90
+
91
+ //responseの読み込み
92
+
93
+ final InputStream in = conn.getInputStream();//この接続からの入力を受け取る入力ストリームを返します。
94
+
95
+ final String encoding = conn.getContentEncoding();// ヘッダフィールドの値を返します。
96
+
97
+ final InputStreamReader inReader = new InputStreamReader(in, encoding);
98
+
99
+ final BufferedReader bufferedReader = new BufferedReader(inReader);
100
+
101
+ String line = null;
102
+
103
+ while((line = bufferedReader.readLine()) != null) {
104
+
105
+ result.append(line);
106
+
107
+ }
108
+
109
+ bufferedReader.close();
110
+
111
+ //ストリームを閉じて、それに関連するすべてのシステムリソースを解放します。
112
+
113
+ inReader.close();
114
+
115
+ in.close();
116
+
117
+ return result.toString();//このシーケンスのデータを表現する文字列を返します。
118
+
119
+ }
120
+
121
+ return null;
122
+
123
+ }
124
+
125
+ }
126
+
127
+
128
+
129
+ ```
130
+
131
+ ###HttpTask.java
132
+
133
+ ```java
134
+
135
+ package com.example.xxx.http;
136
+
137
+
138
+
139
+ import android.os.Bundle;
140
+
141
+ import android.view.View;
142
+
143
+ import android.support.v7.app.AppCompatActivity;
144
+
145
+ import android.widget.Button;
146
+
147
+ import android.widget.EditText;
148
+
149
+
150
+
151
+ public class MainActivity extends AppCompatActivity {
152
+
153
+
154
+
155
+ Button buttonGet;
156
+
157
+
158
+
159
+ @Override
160
+
161
+ protected void onCreate(Bundle savedInstanceState) {
162
+
163
+ super.onCreate(savedInstanceState);
164
+
165
+ setContentView(R.layout.activity_main);
166
+
167
+
168
+
169
+ buttonGet = (Button) findViewById(R.id.buttonGet);
170
+
171
+ buttonGet.setOnClickListener(new View.OnClickListener() {
172
+
173
+ @Override
174
+
175
+ public void onClick(View v) {
176
+
177
+ HttpTask httpTask = new HttpTask();
178
+
179
+ httpTask.execute();
180
+
181
+ }
182
+
183
+ });
184
+
185
+
186
+
187
+ }
188
+
189
+ }
190
+
191
+ ```
192
+
193
+
194
+
9
- 似たよな記事知っいる方いらたら教えだきたいです
195
+ といコード書い見ましたボタンを押しても変化がありませんでし
196
+
197
+ 試しにandroidのブラウザでhttp://raspberrypi.local:8080/onを開こうとすると開けず、パソコン、iPhoneで開くとうまくいきました。何か違いがあるのでしょうか?

1

変更

2017/11/17 06:18

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -1 +1,9 @@
1
1
  [ここ](https://teratail.com/questions/100594)で教わったnode.jsを使ってラズパイに繋がっているLEDを光らせる方法を発展させて、androidstudioでボタンを押した時にバックグランドでURLを開いてLEDを光らせることはできますか?
2
+
3
+
4
+
5
+ openStream ()という関数を見つけたのですがこれで開くことは可能でしょうか?
6
+
7
+
8
+
9
+ 似たような記事を知っている方がいらしたら教えていただきたいです