如何在java中使用HTTP PUT发送带有自定义头的有效负载?

如何在java中使用HTTP PUT发送带有自定义头的有效负载?,java,json,rest,apache-httpclient-4.x,put,Java,Json,Rest,Apache Httpclient 4.x,Put,我编写了以下代码来发送包含JSON对象的有效负载的HTTP PUT请求。 我使用了ApacheHttpClient,但无法找出错误,您能告诉我我做错了什么吗? 它给出了以下编译错误: 线程“main”java.lang.RuntimeException中的异常:存根!在 org.apache.http.impl.client.AbstractHttpClient.(AbstractHttpClient.java:5) 在 org.apache.http.impl.client.DefaultHt

我编写了以下代码来发送包含JSON对象的有效负载的HTTP PUT请求。 我使用了ApacheHttpClient,但无法找出错误,您能告诉我我做错了什么吗? 它给出了以下编译错误:

线程“main”java.lang.RuntimeException中的异常:存根!在 org.apache.http.impl.client.AbstractHttpClient.(AbstractHttpClient.java:5) 在 org.apache.http.impl.client.DefaultHttpClient。(DefaultHttpClient.java:7) at Test.main(Test.java:26)


取决于您拥有的客户端版本。检查示例中是否有使用拦截器设置标题的示例。
 public static void main(String[] args) throws Exception{
            // TODO Auto-generated method stub

            JSONObject keyArg = new JSONObject();
            keyArg.put("name", "XYZ");
            keyArg.put("email", "XYZ");

            HttpClient httpClient = new DefaultHttpClient();
            URI url = new URI("www.XYZ-SERVER.com");

            HttpPut putRequest = new HttpPut(url);
            putRequest.addHeader("Content-Type", "application/json");
            putRequest.addHeader("Content-Length", "LENGTH");
            putRequest.addHeader("Key", "ad412f36a2eecbcd5c0e323e");
            putRequest.setEntity((HttpEntity) keyArg);
            HttpResponse response = httpClient.execute(putRequest);

        }