Java http post请求返回400

Java http post请求返回400,java,gitlab,apache-httpclient-4.x,postdata,Java,Gitlab,Apache Httpclient 4.x,Postdata,我正在使用HTTPPOST方法调用Gitlab API,作为回报,它会给我400个响应代码 我已经用postman测试了gitlab api,它提供了propers头和内容体作为JSON。 它工作得很好。(我使用gitlab创建分支api) 我已经使用eclipse调试了应用程序,有一行代码给出了null 我正在使用ApacheHTTP客户端4.5.5来处理http请求 这是我创建分支的第一个方法 public HttpResponse createBranch(字符串projectId、字符串

我正在使用HTTPPOST方法调用Gitlab API,作为回报,它会给我400个响应代码

我已经用postman测试了gitlab api,它提供了propers头和内容体作为JSON。 它工作得很好。(我使用gitlab创建分支api)

我已经使用eclipse调试了应用程序,有一行代码给出了
null

我正在使用ApacheHTTP客户端4.5.5来处理http请求

这是我创建分支的第一个方法

public HttpResponse createBranch(字符串projectId、字符串branchName、字符串ref){
//url是好的,我调试过了
字符串url=this.API\u BASE\u url+projectId+“/repository/branchs”;
//branchName=“uifix branch”;
//ref=“master”;
JSONObject obj=新的JSONObject();
试一试{
对象put(“分支”,分支名称);
目标投入(“参考”,参考);
}捕获(JSONException e){
e、 printStackTrace();
}
Map headerParams=new HashMap();
headerParams.put(“私人代币”,PAT);
headerParams.put(“内容类型”、“应用程序/json;utf-8”);
headerParams.put(“接受”、“应用程序/json”);
返回HttpUtility.httpPostForResourceCreation(url,headerParams,obj.toString());
}
然后将调用HttpUTILY类中的以下方法

公共静态HttpResponse httpPostForResourceCreation(字符串url、映射头参数、字符串正文){
HttpPost请求=新的HttpPost(url);
StringEntity参数=新的StringEntity(body,ContentType.APPLICATION_JSON);
对于(Map.Entry:headerParam.entrySet()){
request.setHeader(entry.getKey(),entry.getValue());
}
request.setEntity(params);//我想问题在这里。当我调试它时,它显示为null。
返回执行(请求);
}
然后将调用最后一个方法

私有静态HttpResponse执行(HttpRequestBase请求){
HttpClient HttpClient=HttpUtility.buildHttpClient();
HttpResponse响应=null;
试一试{
response=httpClient.execute(请求);
}捕获(客户端协议例外e){
e、 printStackTrace();
}捕获(IOE异常){
e、 printStackTrace();
}
if(response.getStatusLine().getStatusCode()==201){
System.out.println(“资源成功创建:+201”);
}否则{
System.out.println(“资源创建失败:+response.getStatusLine().getStatusCode());
}
返回响应;
}
预期结果应为“已成功创建资源:+201” 我得到的不是“资源创建失败:400”

这里我附加了我的请求对象内容


那么,我错过了什么?任何帮助都将不胜感激。

HTTP 400表示您的请求不正确,它应该在响应中包含错误的描述。@ThisIsNoZaku I附加了请求对象内容。这并不是说服务器认为错误的地方,而是在响应中。