3 回答

TA貢獻(xiàn)1757條經(jīng)驗(yàn) 獲得超7個(gè)贊
您的請(qǐng)求看起來像 json 結(jié)構(gòu),因此發(fā)布如下數(shù)據(jù):
class pojo1{
String method;
Map<String,String> methodProperties;
}
String postUrl = "www.site.com";// put in your url
Gson gson = new Gson();
HttpClient httpClient = HttpClientBuilder.create().build();
HttpPost post = new HttpPost(postUrl);
StringEntity postingString = new StringEntity(gson.toJson(pojo1));//gson.tojson() converts your pojo to json
post.setEntity(postingString);
post.setHeader("Content-type", "application/json");
HttpResponse response = httpClient.execute(post);

TA貢獻(xiàn)1744條經(jīng)驗(yàn) 獲得超4個(gè)贊
對(duì)于這個(gè)問題有一個(gè)眾所周知的方法。在大多數(shù)情況下,您將創(chuàng)建自己的對(duì)象來描述要在 HttpPost 中發(fā)送的內(nèi)容。所以你會(huì)得到類似的東西:
static final String HOST = "https://somehost.com";
? public String sendPost(String method,
? ? ? Map<String, String> methodProperties) throws ClientProtocolException, IOException {
? ? HttpPost post = new HttpPost(HOST);
? ? MyResource resource = new MyResource();
? ? resource.setMethod(method);
? ? MyNestedResource nestedResource = new MyNestedResource();
? ? nestedResource.setMethodProperties(methodProperties);
? ? resource.setNestedResourceMethodProperties(nestedResource);
? ? StringEntity strEntity = new StringEntity(gson.toJson(resource));
? ? post.setEntity(strEntity);
? ? try (CloseableHttpClient httpClient = HttpClients.createDefault();
? ? ? ? CloseableHttpResponse response = httpClient.execute(post)) {
? ? ? return EntityUtils.toString(response.getEntity());
? ? }
? }
這通常是您使用嵌套結(jié)構(gòu)處理更復(fù)雜的 json 對(duì)象的方式。您必須為要發(fā)送的資源創(chuàng)建類(在您的示例中,它可能是一個(gè)類并在其中使用映射,但通常您也為嵌套對(duì)象創(chuàng)建一個(gè)類,如果它具有特定的結(jié)構(gòu))。

TA貢獻(xiàn)1820條經(jīng)驗(yàn) 獲得超9個(gè)贊
static final String HOST = "https://somehost.com";
? public String sendPost(String method, Map<String, String> methodProperties) throws ClientProtocolException, IOException {
? ? HttpPost post = new HttpPost(HOST);??
? ? Gson gson = new Gson();
? ? Params params = new Params(method, methodProperties);
? ? StringEntity entity = new StringEntity(gson.toJson(params));? ?
? ? post.setEntity(entity);
? ? try (CloseableHttpClient httpClient = HttpClients.createDefault();
? ? ? ? CloseableHttpResponse response = httpClient.execute(post)) {
? ? ? return EntityUtils.toString(response.getEntity());
? ? }
? }
? class Params {
? ? String method;? ?
? ? Map<String, String> methodProperties;
? ? public Params(String method, Map<String, String> methodProperties) {
? ? ? this.method = method;
? ? ? this.methodProperties = methodProperties;
? ? }
? ? //getters
? }
添加回答
舉報(bào)