在Java中,有没有一个与python的request模块等效的模块,用于处理基于REST的应用程序

nkoocmlb  于 2023-03-21  发布在  Python
关注(0)|答案(5)|浏览(254)

我正在寻找一个等效的Java API库,它可以做与Python的HTTP Requests module相同的事情。
Requests库的主要功能:

  1. HTTP请求的一步初始化返回response对象。
  2. response对象包含方法/member-vars,用于快速访问响应状态、标头、正文/数据和JSON解析方法。
rfbsl7qr

rfbsl7qr1#

虽然我没有机会使用它,但Unirest看起来是一个很好的选择,对于那些在Java中寻找Python的Requests模块的口才和易用性的人来说。
对于简单的用例,它看起来比Httpcomponents(它在幕后使用)更快地完成任务。

h9a6wy2h

h9a6wy2h2#

迟到的派对,但张贴为子孙后代:
在尝试了Unirest之后,我觉得它不像Python Requests,我无法让它满足我的需求。我的主要抱怨是cookie/会话管理被故意忽略了。
到目前为止,https://github.com/hsiafan/requests对我来说工作得很好,并且透明地实现了基于会话的cookie管理。这一个是“受”Python请求的启发,所以应该是可比的。

zzzyeukh

zzzyeukh3#

您可以使用常规的HttpUrlConnection(这是JDK的一部分)或Jakarta Httpcomponents client

z31licg0

z31licg04#

我在一本关于Spock test framework的书中阅读到了Groovy RESTClient库,这本书推荐它作为Spring RestTemplate的替代品(Spring RestTemplate本身也不错)。

@Grab(group=’org.codehaus.groovy.modules.http-builder’, module=’http-builder’, version=’0.7')
import groovyx.net.http.RESTClient

它返回JSON有一个hashmap。

5ssjco0h

5ssjco0h5#

是的我们可以用看例子

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

public class Main {
    public static void main(String[] args) throws Exception {
        HttpClient httpClient = HttpClient.newBuilder().build();
        HttpRequest httpRequest = HttpRequest.newBuilder()
                .uri(URI.create("https://www.google.com/search?q=Java+Programming"))
                .header("Content-Type", "application/json")
                .GET()
                .build();
        HttpResponse<String> httpResponse = httpClient.send(httpRequest, BodyHandlers.ofString());
        System.out.println(httpResponse.body());
    }
}

相关问题