デバッグのために私を正しい軌道に乗せることができるかどうか疑問に思っていました。私はアンドロイドデバイスに文字列レスポンスを返すと仮定しているサーバーへのhttp呼び出しを行っているアンドロイドデバイスがあります。ブラウザでhttpコールを行うと、httpが動作しています。私は私のアンドロイドアプリで "ファイルが見つかりません例外"を返します。サーバーへのhttp呼び出しはブラウザで動作しますが、アンドロイドで応答コード500が返され、ファイルが見つかりませんでした。
Androidデバイスの応答コードを取得するとサーバーから500(内部サーバーエラー)が返されますが、httpコールはブラウザで動作します。
私のサーバーは、サーブレットとTomcatサーバーの動作(Javaクラスとマシンコードに変換)に変換し、結果のHTMLコードを生成してブラウザに戻すJSPページでhttp要求を受け取ります。
私は非常にサーバーに新しいので、ブラウザですべてが動作するときにアンドロイドのエラーを引き起こす可能性が私のサーバーで起こっているものをデバッグする方法を知りません。
これを引き起こしている可能性のある問題は何ですか?また、どのようにデバッグを開始できますか?ここで
は別のスレッドで実行されているAndroidのでHTTP呼び出しを行うための私のコードです:
URL url = new URL(uri);
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
urlConnection.setRequestMethod("GET");
urlConnection.setDoOutput(true);
urlConnection.setRequestProperty("Content-Type", "text/plain; charset=utf-8");
urlConnection.setRequestProperty("Expect", "100-continue");
urlConnection.connect();
int responseCode = urlConnection.getResponseCode(); //can call this instead of con.connect()
if (responseCode >= 500 && responseCode <= 599) {
throw new Exception("Response Code from Server: " + responseCode);
}
else {
BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream()));
result = "";
String inLine;
while ((inLine = in.readLine()) != null) {
result += inLine;
}
in.close();
Log.d("MainActivity", "IP Address is: " + result);
}
「ファイルが見つかりません」という例外が表示される場所を特定することはできますか?これはサーバーの例外なので、クライアント側で500のエラーが発生しますか?その場合、問題が何であるかを知っています。アプリケーションが存在しないファイル名を要求し、サーバーがクラッシュすることがあります。 404エラーでこれを処理するようにサーバーを修正し、クライアントに適切なファイル名を渡すようにしてください。 – BladeCoder
@BladeCoderはい、ファイルが見つかりませんでした例外は、私のアンドロイドログcatでスローされますが、見つからないファイルは、サーバー上のサーブレットに接続するファイルです。私はこれを調べます... – Natalie