java - Java 中的 HTTP PATCH 请求

标签 java apache request httprequest

我正在尝试用 Java 发出 HTTP PATCH 请求,但尽管我付出了努力,但这仍然不起作用。 我正在尝试修补 Json,这是我的代码:

    HttpResponse response = null;
    BufferedReader rd = null;
    StringBuffer result = new StringBuffer();
    String line = "";

    HttpClient httpclient = HttpClients.createDefault();
    HttpPatch httpPatch = new HttpPatch("http://myURL");

    JsonArrayBuilder Abuilder = Json.createArrayBuilder();
    JsonObjectBuilder oBuilder = Json.createObjectBuilder();
    for(int i=0;i<48;i++){
        Abuilder.add(i+1);
    }
    oBuilder.add("date", "2016-09-08");
    oBuilder.add("values",Abuilder);

    JsonObject jo = Json.createObjectBuilder().add("puissance", Json.createObjectBuilder().add("curves",Json.createArrayBuilder().add(oBuilder))).build();

    try{            
        //Execute and get the response.

        StringEntity params =new StringEntity(jo.toString());

        params.setContentEncoding(new BasicHeader(HTTP.CONTENT_TYPE, "application/json"));
        httpPatch.setEntity(params);

        response = httpclient.execute(httpPatch);

        System.out.println("Response Code : " + response.getStatusLine().getStatusCode());
        rd = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
        while ((line = rd.readLine()) != null) {
                        System.out.println(line);
                        result.append(line);
        }

    }catch(Exception e){

    }

当我执行这个请求时,我得到一个

"400 Error: The request has an invalid header name".

当我使用 Postman 执行此请求时,效果很好。

我对 HTTP 请求还很陌生,所以如果您需要更多详细信息,请随时询问。

最佳答案

StringEntity.setContentEncoding用于设置编码类型

您应该使用StringEntity.setContentType来设置ContentType

关于java - Java 中的 HTTP PATCH 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39465798/

相关文章:

java - 获取 java.security.cert.CertificateException,但是证书已导入信任库

java - 如何在 JPA 中映射名称为保留字的实体字段

Apache 服务器未显示在 EC2 IP 上

node.js - Node JS 请求 + Express Pipe

http - Express/NodeJS 无法在发送后发送 header 由 http 请求引起

javascript - 使用请求 HTTP 客户端库发布到 FastSpring API

java - 如何检查具有特定值的特定行是否已插入数据库中

java - 如何获取OMElement值?

apache - 太阳.security.provider.certpath.SunCertPathBuilderException : unable to find valid certification path to requested target

java - 是否可以在 DynamicJasper 中使用 .jrtx 文件中的样式?