たびたび失礼します。
Androidでテキストフォームに入力した値をサーバにPOST送信するアプリを作っているのですが、うまく値が渡せません。
java
1Map<String, String> send = new HashMap<>(); 2send.put("name", user.name); 3send.put("age", user.age); 4send.put("password", user.password); 5 6try { 7 URL url = new URL(SERVER_ADDRESS + "/registers"); 8 HttpURLConnection urlCon = (HttpURLConnection) url.openConnection(); 9 urlCon.setConnectTimeout(CONNECTION_TIMEOUT); 10 urlCon.setReadTimeout(CONNECTION_TIMEOUT); 11 urlCon.setRequestMethod("POST"); 12 urlCon.setDoOutput(true); 13 14 DataOutputStream os = new DataOutputStream(urlCon.getOutputStream()); 15 os.writeBytes(send.toString()); 16…
サーバサイド(Rails)ではこういうパラメタとして受け取っています。
# 現状 {"name"=>"taro age=13 password=qwe"} # 理想 {"name"=>"taro", "age"=>"13", "password"="qwe"}
mapをうまい事変換してあげればいい気がするのですが、java初心者なのでtoString以外思いつきません。。
ご教授いただけると助かります。
そもそもmapで渡すのも若干微妙なのでしょうか。。
色々なサイトを見ると、key=value&key=value の形に変換してpostデータを作っているように見えました。
よろしくお願いいたします。
補足
Android5.1からorg.apache.httpパッケージとAndroidHTTPClientクラスが非推奨となり、
下記のような今まで常套句っぽかった記述を書き直しているのが発端です。
これみたいにrequestParams.add(new BasicNameValuePair("foo","var");
で
値を追加できれば見やすいのでいいな、と思っています。
java
1List<NameValuePair> requestParams = new ArrayList<NameValuePair>(); 2requestParams.add(new BasicNameValuePair("foo","var"); 3method.setEntity(new UrlEncodedFormEntity(requestParams));
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/01/11 13:26