当前位置: 首页 > 软件库 > 程序开发 > 网络工具包 >

java-requests

HTTP 请求库
授权协议 BSD
开发语言 Java
所属分类 程序开发、 网络工具包
软件类型 开源软件
地区 国产
投 递 者 祁修平
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

Java的世界里,HttpClient 是一个功能强大的Http请求库,然而接口非常复杂,设计上遵从正交性,简单的请求也需要写比较多的代码,更不要说隐藏在各种细节里面的高级用法了。

Requests,  是一个模仿python requests 模块来设计的Http lib,拥有简单而灵活的API,在容易使用的同时,又能够满足各种高级定制的使用,可是说是当前最好用的Java Http Client Lib。

简单的请求示例:

String url = ...;
Response<String> resp = Requests.get(url).text();

// post 和其他方法
resp = Requests.post(url).text();
resp = Requests.head(url).text();

//读取Http Response 
int statusCode = resp.getStatusCode();
Headers headers = resp.getHeaders();
Cookies cookies = resp.getCookies();
String body = resp.getBody();

//response 返回其他类型
resp = Requests.get(url).text("UTF-8");

// get response as bytes
Response<byte[]> resp1 = Requests.get(url).bytes();

// save response as file 
Response<File> resp2 = Requests.get(url).file("/path/to/save/file");

// url 参数:
Map<String, Object> map = new HashMap<>();
map.put("k1", "v1");
map.put("k2", "v2");
Response<String> resp = Requests.get(url).param("key1", "value1").params(map)
        //.params(new Parameter(...), new Parameter(...))
        .text();

// 请求头
Response<String> resp = Requests.get(url).header("key1", "value1").headers(map)
        //.headers(new Header(...), new Header(...))
        .text();

// 添加Cookie:
Map<String, Object> cookies = new HashMap<>();
Response<String> resp = Requests.get(url).cookie("key1", "value1").cookies(map)
        //.cookies(new Cookie(...), new Cookie(...))
        .text();

//  设置 userAgent
Response<String> resp = Requests.get(url).userAgent(userAgent).text();

// 增加请求数据(post, put, patch方法)

// send form-encoded data. x-www-form-urlencoded header will be send automatically
Response<String> resp = Requests.post(url).data(map).text();

// send string data
String str = ...;
resp = Requests.post(url).data(str, "UTF-8").text();

// send from inputStream
InputStream in = ...
resp = Requests.post(url).data(in).text();

// multipart 请求, 用于文件上传:
Response<String> resp = Requests.post(url).data(map).multiPart("ufile", "/path/to/file")
        .multiPart(..., ...).text();

请求设置:

//禁止自动重定向
Response<String> resp = Requests.get(url).allowRedirects(false).text();

//超时
// both connec timeout, and socket timeout
Response<String> resp = Requests.get(url).timeout(30_1000).text();

// set connect timeout and socket timeout
resp = Requests.get(url).timeout(30_1000, 30_1000).text();

//禁止使用gzip
Response<String> resp = Requests.get(url).gzip(false).text();

// 不检查https 证书
Response<String> resp = Requests.get(url).verify(false).text();

// Http Basic 验证
Response<String> resp = Requests.get(url).auth("user", "passwd").verify(false).text();

//代理,支持http, https, socks 代理
Response<String> resp = Requests.get("http://www.baidu.com/")
        .proxy(Proxy.httpProxy("127.0.0.1", 8080))
        .text();

Session. session 可以用来维持http 会话,自动处理cookie, basic auth 等信息:

Session session = Requests.session();
Response<String> resp1 = session.get(url1).text();
Response<String> resp2 = session.get(url2).text();

连接池. 连接池可以用来在多个请求之间复用Http 连接:

ConnectionPool connectionPool = ConnectionPool.custom().verify(false)
       .maxPerRoute(20)
       .maxTotal(100)
       //.proxy(...)
       .build();
Response<String> resp1 = Requests.get(url1).connectionPool(connectionPool).text();
Response<String> resp2 = Requests.get(url2).connectionPool(connectionPool).text();
connectionPool.close();

如果使用了连接池,verify 和 proxy 需要在连接池中设置,Requests 中的设置无效。

  • Request对象和Response对象的原理 Request和Response对象是由服务器创建的。我们来使用它们 Request对象是来获取请求消息,Response对象是来设置响应消息。 Request对象 request对象继承体系结构 ServletRequest -- 接口 | 继承 HttpServletRequest -- 接口 | 实现 org.apache.catalin

  • request对象 request对象是来获取请求消息数据        1.获取请求行数据             GET /test/demo1?name=xiaobai HTTP/1.1             获取请求方式:String getMethod();  GET             ***** 获取虚拟目录:string getContextPath();  /test  

  • java获取response与request 方式一 监听 web.xml <listener> <listener-class>org.springframework.web.context.request.RequestContextListener</listener-class> </listener> java类 HttpServletRequest request = (

  • request和response 回顾 1 什么是Servlet:小服务器程序,用Java编写的服务器端程序,主要功能在于交互式地浏览和修改数据,生成动态Web内容。 2 创建Servlet 3 配置Servlet 4 接受请求参数 5 响应数据 今日内容 1、重定向和转发 2、HTTPServletResponse的使用 3、HTTPServletRequest的使用 教学目标 1、

  • 1.感谢Liu Dong的开源项目! 项目地址:https://github.com/clearthesky/requests requests-4.8.0.jar(该版本支持jdk1.7):http://pan.baidu.com/s/1mhAhqeG 具体的使用方法,请查看项目地址中Usage。 2.一个简单的HTTP请求的例子,发送请求和读取响应字符串: Map<String, Object

  • 加上工具类的代码: public static byte[] getRequestPostBytes(HttpServletRequest request) throws IOException { int contentLength = request.getContentLength(); if(contentLength<0){ return null; } byte buffer[] =

  • JavaWeb——Request tomcat服务器会创建request和response对象,其中request对象封装了请求消息的数据 一、请求消息数据格式 请求消息数据格式包括哟了 3个部分:请求行,请求头,请求体 1. 请求行 //请求地址 Request URL: https://dss0.bdstatic.com/5aV1bjqh_Q23odCf/static/mancard/img/

  • request.getParameter("companyName");是获得表单(前台页面表单中名称为companyName)提交的数据。 request.getParameter(参数名) 在超链接里带的参数用。 request.getAttribute("cc")是获得你setAttribute的数据(获得是你自己存起来的参数cc的值)  HttpServletRequest类既有getAt

  • HTTP请求(request) 浏览器发送给服务器的数据 组成 请求行(url + 协议…) 请求头(浏览器发送给服务器的数据) 请求体(参数) HttpServletRequest 创建:web服务器创建的(Tomcat) 作用:封装浏览器发送给服务器的数据(请求行+请求头+请求体) 常用(请求行)方法 // 获得请求方法: get/post request.getMethod(); // 统一

  • package web.platform.util; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.net.ConnectException; import java.net.UR

  • JSR 对于从事java工作的小伙伴来说可能均听说,但是具体是什么意思呢? JSR是Java Specification Requests的缩写,意思是Java 规范提案。是指向JCP(Java Community Process)提出新增一个标准化技术规范的正式请求。任何人都可以提交JSR,以向Java平台增添新的API和服务。JSR已成为Java界的一个重要标准。 说人话就是你要提交一个jav

  • 比较不常见但是还会用到的几种: request.getScheme()    :获取当前访问的协议,比如http request.getServerName()   :获取当前服务器的名字 request.getServerPort()    :获取当前服务器的端口号 getAttribute(String name):返回由name指定的属性值 getAttributeNames():返回req

  • 以下内容是转载过来 一、什么是Requests Requests 是⽤Python语⾔编写,基于urllib,采⽤Apache2 Licensed开源协议的 HTTP 库。它⽐ urllib 更加⽅便,可以节约我们⼤量的⼯作,完全满⾜HTTP测试需求。 ⼀句话——Python实现的简单易⽤的HTTP库 二、安装Requests库 进入命令行win+R执行 命令:pip install reques

  • 第一种,通过springmvc,参数注入 @PostMapping(value = "/xxx") public Result xxx(HttpServletRequest request) { } 通过RequestContextHolder获取 这种方式在项目任何地方都可以拿到,只要Request已经注入 private static HttpServletRequest get

 相关资料
  • 我在Jmeter中有一个Java请求,我为它编写了扩展AbstractJavaSampleClient的代码,并实现了重写的方法,可以在远程机器的日志中看到响应,但在Jmeter中的view Results树和save response to file中看不到响应。下面是运行测试代码片段,请告诉我如何在Jmeter中捕获Java请求响应

  • 问题内容: 我有以下CURL请求,谁能请我确认subesquest HTTP请求是什么? 会是这样吗? 任何人都可以帮助我将上述curl请求完全转换为httpreq。 提前致谢。 苏维 问题答案: 有很多方法可以实现这一目标。在我看来,以下一项是最简单的,同意它不是很灵活,但是可以工作。

  • 问题内容: 在我的Web应用程序中,有些请求的持续时间超过20秒。但是在某些情况下,代码可能会导致无限循环或类似事件,从而减慢服务器速度。 我想在服务器端放置60秒的请求超时。这是在tomcat中实现的吗? 问题答案: 使用Tomcat 7,你可以添加StuckThreadDetectionValve,这将使你能够识别“卡住”的线程。你可以在要进行检测的应用程序的Context元素中设置阀门: 这

  • 我试图对我写的rest api执行一个put请求,但它总是返回400-bug请求。 java.io.IO异常:服务器返回HTTP响应代码:400为URL:http://localhost:8000/api/v0/contacts/2sun.net.www.protocol.http.HttpURLConnection.getInputStream(未知来源) 我可以用firefox rest客户端

  • 问题内容: 如何用Java发出HTTP Json请求?有图书馆吗?在“ HTTP Json请求”下,我的意思是使用Json对象作为数据进行POST,并以Json接收结果。 问题答案: 除了本身进行HTTP请求(甚至可以仅使用 **java.net.URL.openConnection** 即可完成)之外,您还需要一个JSON库。为了方便地与POJO绑定,我建议使用Jackson。 因此,类似: (

  • 本文向大家介绍playframework Java:接受JSON请求,包括了playframework Java:接受JSON请求的使用技巧和注意事项,需要的朋友参考一下 示例            

  • 我的java代码 这是我得到的错误:08-19 09:58:35.690:W/System。err(737):SoapFault-faultcode:“SOAP-ENV:Server”faultstring:“3001:未知用户试图执行消息类型UserAuthenticationRequest。需要身份验证。”faultactor:“null”详细信息:org。kxml2.kdom。Node@40