如何使用ApacheHttpClient库提交带有JSON数据的补丁请求?

如何使用ApacheHttpClient库提交带有JSON数据的补丁请求?,json,httpclient,apache-httpcomponents,http-patch,Json,Httpclient,Apache Httpcomponents,Http Patch,我使用的是ApacheHTTP客户端v4.3.4。如何通过补丁方法将JSON数据提交到URL?我试过这个 // Create the httpclient HttpClient httpclient = HttpClientBuilder.create().build(); // Prepare a request object HttpUriRequest req = null; if (method.equals(RequestMethod.PATC

我使用的是ApacheHTTP客户端v4.3.4。如何通过补丁方法将JSON数据提交到URL?我试过这个

    // Create the httpclient
    HttpClient httpclient = HttpClientBuilder.create().build();

    // Prepare a request object
    HttpUriRequest req = null;
    if (method.equals(RequestMethod.PATCH))
    {
        req = new HttpPatch(url);
        req.setHeader("Content-type", "application/json");
        if (jsonData != null)
        {
            final StringEntity stringData = new StringEntity(jsonData.toString());
            req.setEntity(stringData);
        }   // if

但是在“req.setEntity”行中,我得到了编译错误,“方法未定义”。请注意,我的请求需要按原样发送JSON数据,而不是将其放入名称-值-参数对中。

您已将HttpPatch对象强制转换为代码中的HttpUriRequest

HttpUriRequest接口不支持setEntity方法,因此需要强制转换:

((HttpPatch)req).setEntity(stringData);