gpt4 book ai didi

java - 如何使用 Jetty API 客户端发送 JSON 请求?

转载 作者:行者123 更新时间:2023-12-01 13:53:23 25 4
gpt4 key购买 nike

我正在尝试使用 Jetty HttpClient 将 JSON 字符串发送到服务器,但我没有找到任何关于如何做到这一点的好示例,仅请求客户端通过 POST 发送简单参数。

我设法使用 Apache HttpClient 发送请求,但是当我执行下一个请求时,我遇到了保持 session 的问题。

// rpcString is a json like  {"method":"Login","params":["user","passw"],"id":"1"}:
entity = new StringEntity(rpcString, HTTP.UTF_8);
HttpPost httpPost = new HttpPost("http://site.com:8080/json/users");
entity.setContentType("application/json");
httpPost.setEntity(entity);
client = HttpClientBuilder.create().build();
CloseableHttpResponse response = (CloseableHttpResponse) client.execute(httpPost);

如果可能的话,我喜欢使用 jetty API 客户端做同样的事情。

谢谢。

最佳答案

这个问题确实很老了,但我遇到了同样的问题,这就是我解决它的方法:

        // Response handling with default 2MB buffer
BufferingResponseListener bufListener = new BufferingResponseListener() {
@Override
public void onComplete(Result result) {

if (result.isSucceeded()) {
// Do your stuff here
}

}
};

Request request = httpClient.POST(url);
// Add needed headers
request.header(HttpHeader.ACCEPT, "application/json");
request.header(HttpHeader.CONTENT_TYPE, "application/json");

// Set request body
request.content(new StringContentProvider(JSON_STRING_HERE), "application/json");


// Add basic auth header if credentials provided
if (isCredsAvailable()) {
String authString = username + ":" + password;
byte[] authEncBytes = Base64.getEncoder().encode(authString.getBytes());
String authStringEnc = "Basic " + new String(authEncBytes);
request.header(HttpHeader.AUTHORIZATION, authStringEnc);
}

request.send(bufListener);

关于java - 如何使用 Jetty API 客户端发送 JSON 请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19789402/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com