開発したAPIを使用するAndroidアプリを開発しています。HttpUrlConnectionヘッダー情報は投稿されていますが、本文はありません
私はHttpUrlConnectionを使用してこの接続を行っていますが、これまでのログインは正常に動作します。この問題は、ログアウト時に発生します。それは何もしていない。私は郵便配達でログアウト要求を行うとうまくいきますが、HttpUrlConnectionではうまくいきません。
ログアウトは次のように動作します。 はhttp://ipaddress:12345/api/LogOut
にPOSTリクエストを行うと、ヘッダーには、ログインしているユーザーのトークンが含まれています。その後、サーバーはデータベースにアクセスし、そのユーザーのトークンを削除する必要があります:あなたは、いくつかの入力を行うまで
URL url = new URL(getString(R.string.url) + "LogOut");
HttpURLConnection con = (HttpURLConnection) url.openConnection();
con.setRequestProperty("Content-Type", "application/json");
con.setRequestProperty("Token", TokenSingleton.getToken());
con.setReadTimeout(10000);
con.setConnectTimeout(15000);
con.setRequestMethod("POST");
con.setDoInput(true);
con.setDoOutput(true);
con.setUseCaches(false);
con.connect();
con.getOutputStream().flush();
con.getOutputStream().close();
con.disconnect();
この 'con.setDoInput(true);が必要でしょうか?サーバーに何かを読んでも何も読まないということを接続に伝えます。 – Vadim
@ Vadim彼はそれを必要としませんが、これがデフォルトです。彼は何らかの入力をする必要があります。 – EJP
falseに設定すると、サーバ側で動作するかどうかわかりません。それは "一方通行"または "火災と忘れ"要求を行います。私はより良い方法は、応答コードを読むことだと思います。サーバがそのような要求を受け入れるならば、それは "HTTP 204 No Content"になることができます。確かに、EJPは正しいです - 少なくとも応答コードを読み、それが入力ストリームまたはエラーストリームから適切に204読み込まれていない場合。 – Vadim