0

HttpClientとHttpPOSTを使用すると、要求の本体として複雑なJSONオブジェクトを投稿する方法があるのでしょうか?HttpPost要求の本文に複雑なJSONObjectを投稿する

{ 
"value": 
    { 
     "id": "12345", 
     "type": "weird", 
    } 
} 
:私は次のようなものを投稿する必要があるだろう、しかし

HttpClient client= new DefaultHttpClient(); 
HttpPost request = new HttpPost("www.example.com"); 

List<NameValuePair> pairs = new ArrayList<NameValuePair>(); 
pairs.add(new BasicNameValuePair("paramName", "paramValue")); 

request.setEntity(new UrlEncodedFormEntity(pairs)); 
HttpResponse resp = client.execute(request); 

:(:Http Post With Bodyこのリンクから、以下に示すように)私は身体の中の簡単なキー/値のペアを投稿する例を参照してくださいました

これを達成する方法はありますか?

次行うADDITIONAL INFORMATION

:サーバに空の体内で

HttpClient client= new DefaultHttpClient(); 
HttpPost request = new HttpPost("www.example.com"); 
String json = "{\"value\": {\"id\": \"12345\",\"type\": \"weird\"}}"; 
StringEntity entity = new StringEntity(json); 
request.setEntity(entity); 
request.setHeader("Content-type", "application/json"); 
HttpResponse resp = client.execute(request); 

結果は...ので、私は事前に400

感謝を入手します!

+0

何らかの理由でこの、 'StringEntity requestBody =新しいStringEntity(、ContentType.APPLICATION_JSON)' – sura2k

答えて

0

HttpPost.setEntity()StringEntityを受け入れるAbstractHttpEntityを受け入れます。有効なString(任意)を設定することができます。

CloseableHttpClient httpClient = HttpClients.createDefault(); 
HttpPost request = new HttpPost("www.example.com"); 
String json = "{\"value\": {\"id\": \"12345\",\"type\": \"weird\"}}"; 

StringEntity entity = new StringEntity(json); 
entity.setContentType(ContentType.APPLICATION_JSON.getMimeType()); 

request.setEntity(entity); 
request.setHeader("Content-type", "application/json"); 

HttpResponse resp = client.execute(request); 
+0

を試してみて、これは私に400を返し、私はこの要求は郵便配達を経由して仕事を得ることができます... :(他アイデア? – BigBug

+0

私はこのようにサーバーが身体として得ているものをチェックすると、何も得られません。しかし、私は自分の質問に投稿し、ジャンクの値をBasicNameValuePairに追加する方法を行うと、サーバーには本体として設定された値があります – BigBug

0

これは私のために働いています!

HttpClient client= new DefaultHttpClient(); 
HttpPost request = new HttpPost("www.example.com"); 
String json = "{\"value\": {\"id\": \"12345\",\"type\": \"weird\"}}"; 
StringEntity entity = new StringEntity(json); 

entity.setContentType(ContentType.APPLICATION_JSON.getMimeType()); 

request.setEntity(entity); 
request.setHeader("Content-type", "application/json"); 
HttpResponse resp = client.execute(request); 
+0

私はそれを聞いて非常にうれしいです!あなたのために私の答えを見つける場合は、答えを受け入れること自由に感じてください:) –

関連する問題