post方法java中的请求体

post方法java中的请求体,java,post,httpclient,Java,Post,Httpclient,我使用的是ApacheCommonsHttpClient Post方法。在post方法中,有两种方法可以设置请求主体 1) setRequestBody(NameValuePair[]) 2) setRequestEntity(RequestEntity) 在我的例子中,上述方法的输入将是json对象。如何将json对象作为requestBody发送 您需要使用第二个选项: httpPost.setHeader("Accept", "application/json"); httpPost.se

我使用的是ApacheCommonsHttpClient Post方法。在post方法中,有两种方法可以设置请求主体

1)
setRequestBody(NameValuePair[])

2)
setRequestEntity(RequestEntity)


在我的例子中,上述方法的输入将是json对象。如何将json对象作为requestBody发送

您需要使用第二个选项:

httpPost.setHeader("Accept", "application/json");
httpPost.setHeader("Content-type", "application/json");

String json = "{ \"key\" : \"value\" }";
StringEntity entity = new StringEntity(json);
httpPost.setEntity(entity);

请提供更多详细信息,但我无法获得正确的响应消息。我把票作为一个参数传递。当我用邮递员发这封信的时候,效果很好,但在这里我收到了一条错误消息,上面写着“无效票证”。我不知道哪里出了问题。@kushi如果您需要任何具体帮助,您必须添加更多信息。发布您的代码,特别是发送和接收的内容,以及错误所在。我使用setParameter方法在setEntity方法之前设置一些参数。当我在URL中附加这些参数而不使用setParameter方法时,我得到响应。但是当我使用这个方法时,我得到一个错误,我给出的参数有问题。示例:someurl/parama=“avalue”¶mb=“bvalue”¶mc=“cvalue”如果我在url上指定参数,但当我使用setParameter(“parama”、“avalue”)设置时,我会收到一个错误,说parama不正确。我明白了吗?那就用有效的方法吧——为什么要把事情弄得比必要的更复杂呢?