■ 実現したいこと
AndroidアプリからPOST送信で返信したい。
■ 生じている問題
下記の<コード1>を実行すると、java.lang.IllegalStateException: Already connected at java.net.URLConnection.setDoOutput
というエラーが現れて、目的のサイトと接続できません。
getRequestPriority()を記述すると、そちらに関しても、Already connect at…というエラーが発生します。
■ 試したこと
<コード2>のように、headerとcookieを取得する行を削除し、通信形式を"GET"に修正すると、目的のサイトと接続できました。
■ 知りたいこと
- Already connect atというエラーが発生してしまう理由
- <コード1>のように、目的にサイトからクッキーを取得した後に、POST送信できるようにするにはどうしたらいいか
という2点に関して、どうかご指導お願いします。
<コード1>
php:
1protected void onCreate(Bundle savedInstanceState) { 2 super.onCreate(savedInstanceState); 3 setContentView(R.layout.activity_main); 4 token = null; 5 new Thread(new Runnable() { 6 @Override 7 public void run() { 8 String site = "http://192.168.xxx.xxx"; 9 10 try { 11 HttpURLConnection connection = (HttpURLConnection) new URL(site).openConnection(); 12 13 // header と cookieを取得する 14 Map<String,List<String>> header = connection.getHeaderFields(); 15 List<String> cookies = header.get("cookie"); 16 17 connection.setRequestMethod("POST"); 18 connection.setDoOutput(true); 19 connection.connect(); 20 Log.d("\nSTATE:\n", String.valueOf(connection.getResponseCode())); 21 22 connection.disconnect(); 23 } catch (IOException e) { 24 e.printStackTrace(); 25 } 26 } 27 }).start(); 28}
<コード2>
php:
1protected void onCreate(Bundle savedInstanceState) { 2 super.onCreate(savedInstanceState); 3 setContentView(R.layout.activity_main); 4 token = null; 5 new Thread(new Runnable() { 6 @Override 7 public void run() { 8 String site = "http://192.168.xxx.xxx"; 9 10 try { 11 HttpURLConnection connection = (HttpURLConnection) new URL(site).openConnection(); 12 13 connection.setRequestMethod("GET"); 14 connection.setDoOutput(false); 15 connection.connect(); 16 Log.d("\nSTATE:\n", String.valueOf(connection.getResponseCode())); 17 18 connection.disconnect(); 19 } catch (IOException e) { 20 e.printStackTrace(); 21 } 22 } 23 }).start(); 24}
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/10/03 22:11
2019/10/04 00:07
2019/10/04 00:47
2019/10/04 01:36
2019/10/04 01:54
2019/10/04 03:13
2019/10/04 08:57