RESTful Web サービスを呼び出して JSON オブジェクトを取得しようとしています。ここで、HttpGet を介して呼び出しを試みたところ、成功しました。渡す必要がある URL は次のようなものでした: http://example.com/ /def.xxx?Name=save&Code=sample&OrderDetails=[{“Count”: “2”, “ID”: “1”, “価格」:「5」}]。私
`
StringBuilder URL = new StringBuilder("http://example.com/def.xxx?");
URL.append("Name="+name+"&");
URL.append("Code="+code+"&");
URL.append("Details=%5b");
int val = 0;
for (int i = 0; i<len; i++){
if (val > 0)
{URL.append(",");
}
else
val = 1;
URL.append(.....);
URLX = URL.toString();
httpGet = new HttpGet(URLX);
response = client1.execute(httpGet);
`
では、HttpGet 呼び出しの代わりに HttpPost 呼び出しを行いたい場合はどうすればよいでしょうか? このようにしてみましたが、
String URL = "http://example.com/def.xxx";
DefaultHttpClient client1 = new DefaultHttpClient();
HttpResponse response = null;
HttpPost httpPost = new HttpPost();
ArrayList<NameValue> postParameters;
postParameters = new ArrayList<NameValuePair>();
postParameters.add(new BasicNameValuePair("Name", name));
postParameters.add(new BasicNameValuePair("Code", code));
try {
httpPost.setEntity(new UrlEncodedFormEntity(postParameters));
} catch (UnsupportedEncodingException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
response = client1.execute(httpPost);
Post 呼び出しで Details=[{“Count”: “2”, “ID”: “1”, “Price”: “5”}] に値のペアを追加する方法がわかりません。これを実行して、HttpGet 呼び出しを行っているときに取得しているものと同じ JSON オブジェクトを取得します。助けてください。