带有PATCH方法的Java 11 HttpRequest

我尝试使用Java 11 HttpRequest通过PATCH方法调用msgraph Web服务:

import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;
import java.net.URLEncoder;

import java.nio.charset.StandardCharsets;

import groovy.json.JsonSlurper;
import groovy.json.JsonOutput;

access_token = "my_token";

def url = 'https://graph.microsoft.com/v1.0/groups/group_id/drive/items/01P4AIIJ5QTIIAZ2FLEZBIZWRV6KEBIMM5/workbook/worksheets/%7B00000000-0001-0000-0000-000000000000%7D/range(address=\'A1\')'

HttpClient httpClient = HttpClient.newBuilder()
                                    .version(HttpClient.Version.HTTP_2)
                                    .build();

jsonPayloadString = '{"values":["blabla"]}';


jsonPayload = HttpRequest.BodyPublishers.ofString(jsonPayloadString.toString())

HttpRequest request = HttpRequest.newBuilder()
                                 .uri(URI.create(url))
                                 .PATCH(jsonPayload)
                                 .header("Content-Type","application/json")
                                 .build();

HttpResponse response = httpClient.send(request,HttpResponse.BodyHandlers.ofString());

错误:

  

没有方法签名:   jdk.internal.net.http.HttpRequestBuilderImpl.PATCH()适用于   参数类型:   (jdk.internal.net.http.RequestPublishers $ StringPublisher)值:   [jdk.internal.net.http.RequestPublishers$StringPublisher@280a600b]

该呼叫本身运行良好,例如在Postman中。但是我无法使其在groovy / java中工作。

我以前使用过HttpUrlConnection,但是它不支持PATCH。实际上可以使用HttpRequest吗?

我在网络上找不到使用PATCH方法的任何可行示例。

dmkut 回答:带有PATCH方法的Java 11 HttpRequest

根据文档,您可以使用“ method”来指定其他类型的方法,例如PATCH,OPTIONS,TRACE等。

在您的情况下:

HttpRequest request = HttpRequest.newBuilder()
                             .uri(URI.create(url))
                             .method("PATCH",jsonPayload)
                             .header("Content-Type","application/json")
                             .build();
本文链接:https://www.f2er.com/3108224.html

大家都在问