http 経由で xml コンテンツを送信する必要があります。すでにいくつかの方法を試しましたが、うまくいきません。パラメータは次のようになります {"action"=>"login", "controller"=>"session", "user"=>{"username"=>"123@gmail.com", "password"=>" [FILTERED]"}} 一方、そのアクションとコントローラーパラメーターはサーバーで事前定義されています(つまり、ユーザータグ内でユーザー名とパスワードの両方が来る必要があります...
XML コード ブロックは次のようになります。
<?xml version=\"1.0\" encoding=\"UTF-8\"?>
<user>
<username>xxx</username>
<password>yyyy</password>
</user>
私のコードは
String param1 = null;
param1 = URLEncoder.encode(charset);
String param2 = null;
try {
param2 = URLEncoder.encode("x@yyy.com", charset);
} catch (UnsupportedEncodingException e3) {
// TODO Auto-generated catch block
e3.printStackTrace();
}
String param3 = null;
try {
param2 = URLEncoder.encode("xxx", charset);
} catch (UnsupportedEncodingException e4) {
// TODO Auto-generated catch block
e4.printStackTrace();
}
String query = String.format("user=&username=%s&password=%s", param1, param2,param3);*/
URLConnection urlConnection = null;
try {
urlConnection = new URL(url).openConnection();
} catch (MalformedURLException e2) {
// TODO Auto-generated catch block
e2.printStackTrace();
} catch (IOException e2) {
// TODO Auto-generated catch block
e2.printStackTrace();
}
urlConnection.setUseCaches(false);
urlConnection.setDoOutput(true); // Triggers POST.
//urlConnection.setRequestProperty("accept-charset", charset);
urlConnection.setRequestProperty("content-type", "application/xml");
OutputStreamWriter writer = null;
try {
writer = new OutputStreamWriter(urlConnection.getOutputStream());
writer.write(query); // Write POST query string (if any needed).
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
if (writer != null) try { writer.close(); } catch (IOException logOrIgnore) {}
}
try {
InputStream result = urlConnection.getInputStream();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}