Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将数据放入请求体的所有可能方法_Java_Http_Httprequest_Apache Httpclient 4.x - Fatal编程技术网

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的屏幕,其中包含所需的标题和正文内容

我试着像这样把密码放进身体里:

  • 作为一个简单的实体
  • 作为多方当事人
  • 作为JSON对象
  • 如下所示:

    代码如下:

    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似乎没有帮助:(