Java 将数据放入请求体的所有可能方法
在我们的系统中,我们与另一个系统集成 然而,我们在调用一些名为Java 将数据放入请求体的所有可能方法,java,http,httprequest,apache-httpclient-4.x,Java,Http,Httprequest,Apache Httpclient 4.x,在我们的系统中,我们与另一个系统集成 然而,我们在调用一些名为API/esia/verify 这里有一个来自swagger的屏幕,其中包含所需的标题和正文内容 我试着像这样把密码放进身体里: 作为一个简单的实体 作为多方当事人 作为JSON对象 如下所示: 代码如下: public static boolean finishAuthorization(final String bearerToken, final String password) throws IOException
API/esia/verify
这里有一个来自swagger的屏幕,其中包含所需的标题和正文内容
我试着像这样把密码放进身体里:
public static boolean finishAuthorization(final String bearerToken, final String password) throws IOException
{
CloseableHttpClient httpclient = HttpClients.createDefault();
try
{
HttpPut httpPut = new HttpPut("urlToSendTo");
StringEntity se = new StringEntity(password); // first case
/* MultipartEntityBuilder builder = MultipartEntityBuilder.create();
builder.addTextBody("password", password);
HttpEntity entity = builder.build();
httpPut.setEntity(entity); */ // second case
/* StringEntity se = new StringEntity(new JSONObject().put("password", password).toString()); */ // third case
httpPut.setEntity(se);
EGRZHttpUtils.addHeadersToHttp(httpPut, new HashMap<String, String>(){{
put("Authorization", bearerToken);
put("Content-Type", "application/json;charset=UTF-8");
}});
HttpResponse response = httpclient.execute(httpPut);
System.out.println("response status " + response.getStatusLine().getStatusCode());
return Boolean.valueOf(EntityUtils.toString(response.getEntity()));
}
finally
{
httpclient.close();
}
}
public静态布尔finishAuthorization(最终字符串bearerToken,最终字符串密码)引发IOException
{
CloseableHttpClient httpclient=HttpClients.createDefault();
尝试
{
HttpPut HttpPut=新的HttpPut(“urlToSendTo”);
StringEntity se=新的StringEntity(密码);//第一种情况
/*MultipartEntityBuilder=MultipartEntityBuilder.create();
builder.addTextBody(“密码”,password);
HttpEntity=builder.build();
httpPut.setEntity(entity);*///第二种情况
/*StringEntity se=new StringEntity(new JSONObject().put(“password”,password).toString());*///第三种情况
httpPut.setEntity(se);
EGRZHttpUtils.addHeadersToHttp(httpPut,newhashmap()){{
put(“授权”,bearerToken);
put(“内容类型”、“应用程序/json;字符集=UTF-8”);
}});
HttpResponse response=httpclient.execute(httpPut);
System.out.println(“响应状态”+响应.getStatusLine().getStatusCode());
返回Boolean.valueOf(EntityUtils.toString(response.getEntity());
}
最后
{
httpclient.close();
}
}
我使用的HTTP客户端是org.apache.HTTP
但不幸的是,以上这些都不能正常工作。我正在集成的系统一直说,密码
未提供,不能为null
。由于缺乏文档,我必须了解是否有其他方法可以将内容添加到正文中,并且可以在我这方面进行修复,或者它们的配置是否错误
提前谢谢
编辑
我可以使用他们的服务来测试它。无法使用Swagger进行测试,因为令牌
经常更新,并且它返回我401(未初始化)
在他们的站点上,我可以调用相同的方法,它会按预期返回true/false
在请求有效负载
中,它就在那里-密码。但我不知道如何看待它
是否有任何chrome扩展可以像Wireshark那样查看/将其转换为raw
事实证明,密码实体应该在双引号中:x 只有在这种情况下,它才能“看到”它 让我无话可说
您是否能够使用Swagger UI进行验证?a。您是否可以尝试将内容类型用作text\plain,因为您的请求正文是纯字符串而不是应用程序/json@MadhavKumar Jha如果我将其更改为text/plainadd new header accept--application/json,服务器将返回500个内部服务器错误,如浏览器控制台中所示DN似乎没有帮助:(