调用代码样例如下
import com.google.gson.Gson;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.NameValuePair;
import org.apache.commons.httpclient.methods.PostMethod;
import org.apache.commons.httpclient.methods.StringRequestEntity;
import java.io.IOException;
import java.util.HashMap;
public class httputil {
public static void main(String[] args) throws IOException {
String redirectUrl = "XXXXXXXXXX";
HttpClient client = new HttpClient();
PostMethod post = new PostMethod(redirectUrl);
post.addRequestHeader("Content-Type", "application/json");
HashMap<String, String> paramsMap = new HashMap<String, String>(4);
paramsMap.put("user", "aaa");
paramsMap.put("password", "bbb");
post.setRequestEntity(new StringRequestEntity(new Gson().toJson(paramsMap), "application/json", "UTF-8"));
client.executeMethod(post);
String result = post.getResponseBodyAsString();
HttpClient client1 = new HttpClient();
PostMethod post1 = new PostMethod(redirectUrl);
post1.addRequestHeader("Content-Type", "application/json");
NameValuePair[] pairs = {
new NameValuePair("user", "aaa"),
new NameValuePair("password", "bbb")
};
post1.setRequestBody(pairs);
client1.executeMethod(post1);
String result1 = post1.getResponseBodyAsString();
}
}
在都配置过Content-Type的请求头为json的前提下,发现通过setRequestBody方法设置请求体之后的post1,使用的是Content-Type仍然是application/x-www-form-urlencoded,最后报400的错误,服务器解析不了,这里需要注意一下
资料:https://blog.csdn.net/jacklearntech/article/details/12250435
https://www.cnblogs.com/zichuan/p/6126085.html