私は、JavaでApache HttpPost
とMultipartEntity
を使ってHTTP POSTリクエストを書いています。リクエストのデータ部分では、addPart(name, StringBody)
を使用して簡単な部品を追加できます。しかし、値の配列である本体部分を追加する必要があります。これはどうすればいいですか?カール要求の例は次のとおりです。JavaではJava HTTP POSTリクエストのデータ部分にどのように配列を追加しますか?
curl -k -H "Content-Type: application/json" --data '{ "name":"someName",
"email":"[email protected]", "properties" : { "prop1" : "123", "prop2" : "abc" }}'
-X POST 'https://some.place.com/api/test'
、私はこのような要求を作成することができますが、StringBodyは単一の値ですので、私は、「プロパティ」配列値を作成する方法を知っておく必要があります。
HttpPost httpPost = new HttpPost(newAdultUrl);
MultipartEntity entity = new MultipartEntity();
entity.addPart("name", new StringBody("someName"));
entity.addPart("email", new StringBody("[email protected]"));
entity.addPart("properties", new ???);
httpPost.setEntity(entity);
ありがとうございました!
エンコードを行うにはJSONライブラリを使用する必要があります。これははるかにクリーンで柔軟性があります。簡単なのはGsonです。 – Viruzzo
私は1つのアプローチを見つけました。私はMultipartEntityの代わりにStringEntityを使用し、必要なさまざまなデータフィールドからJSON文字列を作成することができます(Gsonとjson-simpleの両方をスタックに使用しています)。しかし、上記のコードサンプルからMultipartEntityアプローチを使用する方法を誰かが知っていれば、私はまだそのアプローチを好むでしょう。 –