質問をすることでしか得られない、回答やアドバイスがある。

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

新規登録して質問してみよう
ただいま回答率
85.48%
Kotlin

Kotlinは、ジェットブレインズ社のアンドリー・ブレスラフ、ドミトリー・ジェメロフが開発した、 静的型付けのオブジェクト指向プログラミング言語です。

Android Emulator

Android EmulatorはアンドロイドのOSで起動しているアンドロイドのデバイスの機能をシミュレートするソフトウェアです。Emulatorは開発者に複数の違う設定を持ったデバイスを必要とすることなくアプリケーションを開発しテストすることが可能になります。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

Q&A

0回答

720閲覧

android studio kotlin HttpsURLConnectionについて

退会済みユーザー

退会済みユーザー

総合スコア0

Kotlin

Kotlinは、ジェットブレインズ社のアンドリー・ブレスラフ、ドミトリー・ジェメロフが開発した、 静的型付けのオブジェクト指向プログラミング言語です。

Android Emulator

Android EmulatorはアンドロイドのOSで起動しているアンドロイドのデバイスの機能をシミュレートするソフトウェアです。Emulatorは開発者に複数の違う設定を持ったデバイスを必要とすることなくアプリケーションを開発しテストすることが可能になります。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

0グッド

0クリップ

投稿2022/02/02 17:36

編集2022/02/03 02:23

前提・実現したいこと

kotlinを使用しております
HttpsURLConnectionでWebAPIに接続し、最終的にJSONデータをTextViewに表示したいと考えております。

発生している問題・エラーコード

TextViewに、失敗したときに表示するよう設定したエラーコードが表示されてしまい上手く接続できておりません。
また、android studio の Logには赤字のエラーではありませんが、エラーメッセージがでております。
下記がログの内容になります。

2022-02-03 02:23:58.577 3461-3491/com.websarva.wings.android.httprequest W/System.err: java.io.FileNotFoundException: https://bookocr.cognitiveservices.azure.com/vision/v3.2/ocr?language=ja&detectOrientation=true&model-version=latest 2022-02-03 02:23:58.577 3461-3491/com.websarva.wings.android.httprequest W/System.err: at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getInputStream(HttpURLConnectionImpl.java:255) 2022-02-03 02:23:58.577 3461-3491/com.websarva.wings.android.httprequest W/System.err: at com.android.okhttp.internal.huc.DelegatingHttpsURLConnection.getInputStream(DelegatingHttpsURLConnection.java:211) 2022-02-03 02:23:58.578 3461-3491/com.websarva.wings.android.httprequest W/System.err: at com.android.okhttp.internal.huc.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:30) 2022-02-03 02:23:58.578 3461-3491/com.websarva.wings.android.httprequest W/System.err: at com.websarva.wings.android.httprequest.MainActivity$onCreate$1$visionTask$1.doInBackground(MainActivity.kt:74) 2022-02-03 02:23:58.578 3461-3491/com.websarva.wings.android.httprequest W/System.err: at com.websarva.wings.android.httprequest.MainActivity$onCreate$1$visionTask$1.doInBackground(MainActivity.kt:51) 2022-02-03 02:23:58.578 3461-3491/com.websarva.wings.android.httprequest W/System.err: at android.os.AsyncTask$3.call(AsyncTask.java:394) 2022-02-03 02:23:58.578 3461-3491/com.websarva.wings.android.httprequest W/System.err: at java.util.concurrent.FutureTask.run(FutureTask.java:266) 2022-02-03 02:23:58.578 3461-3491/com.websarva.wings.android.httprequest W/System.err: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167) 2022-02-03 02:23:58.578 3461-3491/com.websarva.wings.android.httprequest W/System.err: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) 2022-02-03 02:23:58.578 3461-3491/com.websarva.wings.android.httprequest W/System.err: at java.lang.Thread.run(Thread.java:923)

該当のソースコード

class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) //viewを取得 val img_view = findViewById<ImageView>(R.id.img_view) val onYesClick = findViewById<Button>(R.id.onYesClick) val txt_result = findViewById<TextView>(R.id.textView) //画像を表示 val bitmap = BitmapFactory.decodeResource(this.getResources(), R.drawable.sample) img_view.setImageBitmap(bitmap) //はいが押されたら onYesClick.setOnClickListener { //イメージをストリームに変換 val outputStream = ByteArrayOutputStream() bitmap?.compress(Bitmap.CompressFormat.JPEG, 100, outputStream) val Inputstream = outputStream.toByteArray() //非同期でAPIリクエストを宣言 val visionTask = object : AsyncTask<InputStream, String, String>(){ override fun doInBackground(vararg params: InputStream?): String { //APIを叩く(バックグラウンド処理) val url = URL("https://bookocr.cognitiveservices.azure.com/vision/v3.2/ocr?language=ja&detectOrientation=true&model-version=latest") var reader: BufferedReader? = null val buffer: StringBuffer var connection = url.openConnection() as HttpsURLConnection //HTTpsURLConnection try { connection.connectTimeout = 1000 connection.readTimeout = 1000 connection.useCaches = false connection.setRequestProperty("Content-Type", "application/octet-stream") connection.setRequestProperty( "****************", "value" )//apikey connection.requestMethod = "POST" connection.setFixedLengthStreamingMode(Inputstream.size) //APIを叩く connection.connect() //Bodyの書き込み val stream = connection.inputStream reader = BufferedReader(InputStreamReader(stream)) buffer = StringBuffer() var line: String? while (true) { line = reader.readLine() if (line == null) { break } buffer.append(line) Log.d("CHECK", buffer.toString()) } //Stringでreturn return buffer.toString() //エラーを処理 } catch (e: MalformedURLException) { e.printStackTrace() } catch (e: IOException) { e.printStackTrace() } catch (e: JSONException) { e.printStackTrace() } //finallyで接続を切断 finally { connection?.disconnect() try { reader?.close() } catch (e: IOException) { e.printStackTrace() } } //失敗した時のエラーコード return "error" }//doinBack //返ってきたデータをビューに反映させる処理 override fun onPostExecute(result: String?) { val textView =findViewById<TextView>(R.id.textView) super.onPostExecute(result) if(result == null) return textView.text = result } }//AsyncTask //タスクの起動 visionTask.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR) } } } コード

コードの不備などがございましたらご指摘よろしくお願いいたします。
参考にさせていただいたサイトになります。
https://qiita.com/minme31/items/a9636cb0453524c64e67

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

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

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

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

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

hoshi-takanori

2022/02/03 06:28

HttpURLConnection が FileNotFoundException になるのは http のステータスが 404 の時らしいので、URL が間違ってるか、使い方がおかしいのでは。画像を API に送信してるようには見えないし…。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問