精华内容
下载资源
问答
  • 前言在演示功能代码使用请求http地址为:...因未设置请求头时也成功获取了响应数据,所以未在演示代码添加请求头信息,请求失败时可自行添加请求头信息后重试方式一:功能实现类 ...

    前言

    在演示的功能代码中使用的请求http地址为:http://timor.tech/api/holiday/year/

    接口说明:获取指定年份或年月份的所有节假日信息。默认返回当前年份的所有信息。

    以上功能代码仅在使用GET请求方式时测试通过,POST等其他请求时请自行尝试。

    因未设置请求头时也成功获取了响应数据,所以未在演示代码中添加请求头信息,请求失败时可自行添加请求头信息后重试

    方式一:功能实现类 java.net.HttpURLConnection

    请求实现代码:

    package com.zhiyin.test;

    import java.io.BufferedReader;

    import java.io.IOException;

    import java.io.InputStream;

    import java.io.InputStreamReader;

    import java.net.HttpURLConnection;

    import java.net.URL;

    public class MyTest {

    public static void main(String[] args) {

    test();

    }

    // HttpURLConnection方式

    public static void test() {

    String SUBMIT_METHOD_GET = "GET"; // 一定要是大写,否则请求无效

    String urlStr = "http://timor.tech/api/holiday/year/"; // 请求http地址

    String param = "2020"; // 请求参数

    HttpURLConnection connection = null;

    InputStream is = null;

    BufferedReader br = null;

    String result = null; // 返回结果字符串

    try {

    // 创建远程url连接对象

    URL url = new URL(urlStr);

    // 通过远程url连接对象打开一个连接,强转成httpURLConnection类

    connection = (HttpURLConnection) url.openConnection();

    // 设置连接方式:GET

    connection.setRequestMethod(SUBMIT_METHOD_GET);

    // 设置连接主机服务器的超时时间:15000毫秒

    connection.setConnectTimeout(15000);

    // 设置读取远程返回的数据时间:60000毫秒

    connection.setReadTimeout(60000);

    // 发送请求

    connection.connect();

    // 通过connection连接,请求成功后获取输入流

    if (connection.getResponseCode() == 200) {

    is = connection.getInputStream();

    // 封装输入流is,并指定字符集

    br = new BufferedReader(new InputStreamReader(is, "UTF-8"));

    // 存放数据

    StringBuffer sbf = new StringBuffer();

    String temp = null;

    while ((temp = br.readLine()) != null) {

    sbf.append(temp);

    }

    result = sbf.toString();

    }

    } catch (IOException e) {

    e.printStackTrace();

    } finally {

    // 释放资源

    if (null != br) {

    try {

    br.close();

    } catch (IOException e) {

    e.printStackTrace();

    }

    }

    if (null != is) {

    try {

    is.close();

    } catch (IOException e) {

    e.printStackTrace();

    }

    }

    connection.disconnect(); // 关闭远程连接

    }

    System.out.println("Successfully:" + result);

    }

    }

    方式二:功能实现类 org.apache.http.client.methods.HttpGet

    maven项目中pom.xml文件里引入依赖:

    org.apache.httpcomponents

    httpclient

    4.5.2

    请求实现代码:

    package com.zhiyin.test;

    import org.apache.http.HttpEntity;

    import org.apache.http.client.methods.CloseableHttpResponse;

    import org.apache.http.client.methods.HttpGet;

    import org.apache.http.impl.client.CloseableHttpClient;

    import org.apache.http.impl.client.HttpClients;

    import java.io.InputStream;

    public class MyTest {

    public static void main(String[] args) {

    test();

    }

    // HttpGet方式

    public static void test() {

    try {

    String urlStr = "http://timor.tech/api/holiday/year/"; // 请求http地址

    String param = "2020"; // 请求参数

    // 模拟(创建)一个浏览器用户

    CloseableHttpClient client = HttpClients.createDefault();

    HttpGet httpGet = new HttpGet(urlStr + param);

    // httpclient进行连接

    CloseableHttpResponse response = client.execute(httpGet);

    // 获取内容

    HttpEntity entity = response.getEntity();

    // 将内容转化成IO流

    InputStream content = entity.getContent();

    // 输入流转换成字符串

    byte[] byteArr = new byte[content.available()];

    content.read(byteArr); // 将输入流写入到字节数组中

    String result = new String(byteArr);

    System.out.println("Successfully:" + result);

    } catch (Exception e) {

    e.printStackTrace();

    }

    }

    }

    原文:https://www.cnblogs.com/zhiyin1209/p/12599376.html

    展开全文
  • 我是改装新手,我想让我getData方法...DataService.javapublic class DataService {private static final String TAG = MainActivity.class.getSimpleName();private final ApiClient apiClient;public DataSer...

    我是改装的新手,我想让我的getData方法返回一个功能对象.最简单的方法是什么?

    DataService.java

    public class DataService {

    private static final String TAG = MainActivity.class.getSimpleName();

    private final ApiClient apiClient;

    public DataService() {

    apiClient = new ApiClientFactory().createApiClient();

    }

    public List getData(){

    apiClient.getData().enqueue(new Callback() {

    @Override

    public void onResponse(Call call, Response response) {

    List features = response.body().getFeatures();

    Log.d(TAG, "Data successfully downloaded");

    }

    @Override

    public void onFailure(Call call, Throwable t) {

    Log.e(TAG, t.toString());

    }

    });

    //I need to return features in getData method

    }

    }

    解决方法:

    你不能回来,你必须“回电”.

    将内部Callback类提取为参数.

    public void getData(Callback callback){

    apiClient.getData().enqueue(callback);

    }

    在你的其他代码中

    // DataService service = ...;

    // Define Callback

    Callback responseCallback = new Callback() {

    @Override

    public void onResponse(Call call, Response response) {

    List features = response.body().getFeatures();

    Log.d(TAG, "Data successfully downloaded");

    // Data is returned here

    for (Feature f: features) {

    Log.d("feature", String.valueOf(f)); // for example

    }

    }

    @Override

    public void onFailure(Call call, Throwable t) {

    Log.e(TAG, t.toString());

    }

    };

    // Call it

    service.getData(responseCallback);

    你也可以做service.getData(new Callback< DataResponse>(){…});

    标签:java,android,retrofit2

    来源: https://codeday.me/bug/20190522/1154430.html

    展开全文
  • 在项目开发,有时候我们需求在拦截器中获取@responsebody返回值,但是在我知识体系没有方法获取,(除非研究源码),但是在springMVC4版本以后,新加了一个@ControllerService注解。用此注解然后实现...

    在项目开发中,有时候我们需求在拦截器中获取@responsebody的返回值,但是在我的知识体系中没有方法获取,(除非研究源码),但是在springMVC4版本以后,新加了一个@ControllerService注解。用此注解然后实现ResponseBodyAdvice接口可获取带有@responsebody的返回值,然后操作。

    然后在springmvc拦截器中afterCompletion的方法中进行获取。

    @Override

    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {

    // 将handler强转化为handlermethod

    HandlerMethod handlerMethod = (HandlerMethod) handler;

    // 从方法处理器中获取要调用的方法

    Method method = handlerMethod.getMethod();

    //获取返回结果

    Object result = request.getAttribute("response");

    //获取当前类

    Class> clazz = method.getDeclaringClass();

    //获取当前的类名

    String className = clazz.getName();

    //获取当前的方法名

    String methodName = method.getName();

    //转化为json

    String jsonResult = "";

    if(result != null) {

    jsonResult = JSON.toJSONString(result);

    }

    }

    展开全文
  • //get请求方式private String getInfo(Map params,String URL) {// 创建Httpclient对象CloseableHttpClient httpclient = HttpClients....CloseableHttpResponse response = null;String resultString=null;try...

    //get请求方式

    private String getInfo(Map params,String URL) {

    // 创建Httpclient对象

    CloseableHttpClient httpclient = HttpClients.createDefault();

    CloseableHttpResponse response = null;

    String resultString=null;

    try {

    // 创建uri

    URIBuilder builder = new URIBuilder(URL);

    if (params != null) {

    for (String key : params.keySet()) {

    builder.addParameter(key, params.get(key).toString());

    }

    }

    URI uri = builder.build();

    // 创建http GET请求

    HttpGet httpGet = new HttpGet(uri);

    // 执行请求

    response = httpclient.execute(httpGet);

    // 判断返回状态是否为200

    if (response.getStatusLine().getStatusCode() == 200) {

    resultString = EntityUtils.toString(response.getEntity(), "UTF-8");

    }

    } catch (Exception e) {

    e.printStackTrace();

    } finally {

    try {

    if (response != null) {

    response.close();

    }

    httpclient.close();

    } catch (IOException e) {

    e.printStackTrace();

    }

    }

    return resultString;

    }

    //post请求方式

    private String getInfo(Map params, String URL) {

    // 创建Httpclient对象

    CloseableHttpClient httpclient = HttpClients.createDefault();

    CloseableHttpResponse response = null;

    String resultString = null;

    try {

    // 创建uri

    URIBuilder builder = new URIBuilder(URL);

    if (params != null) {

    for (String key : params.keySet()) {

    builder.addParameter(key, params.get(key).toString());

    }

    }

    URI uri = builder.build();

    // 创建http POST请求

    HttpPost httpPost = new HttpPost(uri);

    // 执行请求

    response = httpclient.execute(httpPost);

    // 判断返回状态是否为200

    if (response.getStatusLine().getStatusCode() == 200) {

    resultString = EntityUtils.toString(response.getEntity(),"UTF-8");

    }

    } catch (Exception e) {

    e.printStackTrace();

    } finally {

    try {

    if (response != null) {

    response.close();

    }

    httpclient.close();

    } catch (IOException e) {

    e.printStackTrace();

    }

    }

    return resultString;

    }

    //传送json类型参数的post请求

    private String getCarMapInfo(String json, String URL) {

    // 创建Httpclient对象

    CloseableHttpClient httpClient = HttpClients.createDefault();

    CloseableHttpResponse response = null;

    String resultString = null;

    try {

    // 创建Http Post请求

    HttpPost httpPost = new HttpPost(URL);

    // 创建请求内容

    StringEntity entity = new StringEntity(json, ContentType.APPLICATION_JSON);

    httpPost.setEntity(entity);

    // 执行http请求

    response = httpClient.execute(httpPost);

    resultString = EntityUtils.toString(response.getEntity(), "utf-8");

    } catch (Exception e) {

    e.printStackTrace();

    } finally {

    try {

    response.close();

    httpClient.close();

    } catch (IOException e) {

    e.printStackTrace();

    }

    }

    return resultString;

    }

    展开全文
  • request和response对象既然代表请求和响应,那我们要获取客户机提交过来的数据,只需要找request对象就行了。要向客户机输出数据,只需要找response对象就行了。response常见应用(一):向客户端输出中文数据1 ...
  • 但是当在页面端的js里打上断点查看数据的时候发现response的body中的数据和我在后台发挥的数据data是一致的。在下面前后端代码中吧操作的返回值data, status, rowCount列出来了。要问的问题是,response里面的body...
  • //get请求方式private String getInfo(Map params,String URL) {// 创建Httpclient对象CloseableHttpClient httpclient = HttpClients....CloseableHttpResponse response = null;String resultString=null;try...
  • 最近在做文件上传的相关工作,使用了H5的FormData,到后台就不知到怎么能得到前端上传的数据,这里找到了一种方式,使用ServletFileUpload实现,此前需要导入包,在下面的链接可以找到。 原文链接。 public ...
  • 灯塔君跟大家讲:JVM源码分析之Java对象头实现HotSpot虚拟机中,对象在内存中的布局分为三块区域:对象头、实例数据和对齐填充。对象头对象头包括两部分:Mark Word 和 类型指针。Mark WordMark Word用于存储对象...
  • 获取请求体中的内容 BufferedReader br = new BufferedReader( new InputStreamReader(request.getInputStream(), "utf-8")); StringBuffer sb = new StringBuffer(""); String temp; while ((temp = ...
  • 传输结束后,request.getParameter(“xxx”),获取传输的数据时,直URLDecoder.decode(xxx,”utf-8”);并不行,因为getParameter在接收数据时已经对数据进行了一次解码,解码方式为”iso-8859-1”,所以我们需要对数据再...
  • request和response(请求和响应) 1.当Web容器收到客户端的发送过来http请求,会针对每一次请求,分别创建一个用于代表此次请求的... request负责获取客户机提交过来的数据response负责向客户机输出数据...
  • request和response(请求和响应)1.当Web容器收到客户端的发送过来http请求,会针对每一次请求,分别创建一个用于代表此次...request负责获取客户机提交过来的数据response负责向客户机输出数据。2.HttpServletRequ...
  • 远程计算机调用我service方法post数据public static String service(HttpServletRequest request,HttpServletResponse response) {try {//获取post过来流对象BufferedReader bufReader = request.getReader();...
  • request和response对象既然代表请求和响应,那我们要获取客户机提交过来的数据,只需要找request对象就行了。要向客户机输出数据,只需要找response对象就行了。package com.yyz.response;import java.io.IO...
  • 远程计算机调用我service方法post数据 public static String service(HttpServletRequest request,HttpServletResponse response) {try {  //获取post过来流对象BufferedReader bufReader = request....
  • 首先要明白ajax的基本格式,参考下面的内容,可以发现,success是请求成功后服务器返回的数据,接收只需要把回调函数的值处理就可以了,如:response:即为服务器返回的数据,例如:{"uid":123,"name":"jghdream"},...
  • # ```数据封装在build,builds中 可是输出的不是数据库中的数据而是 ![图片说明](https://img-ask.csdn.net/upload/202004/02/1585822586_24417.jpg) # DormBuildDaoImpl.java package zj.shizhan.dao; import ...
  • ,然后对这个类型进行数据处理,至于怎么处理,还要看实际应用场景。本篇讲述如何获取类或接口泛型类型(参数化类型ParameterizedType)。实例1.定义泛型接口public interface Response{void...
  • 有个需要日志记录http请求和响应...二、出参打印ServletResponse中将输出流,直接获取流并不能获取中的数据,只可以改写响应流,替换响应内容;所以需要重写ServletResponse来保存传到输出流的内容;com.github.i...
  • 展开全部实现方式为:request....代码一:publicStringgetResult(){HttpServletResponseresponse=ServletActionContext.getResponse();response.setContentType("text/html;charset=GBK");//解决中文乱码PrintStrea...
  • 有个需要日志记录http请求和响应...二、出参打印ServletResponse中将输出流,直接获取流并不能获取中的数据,只可以改写响应流,替换响应内容;所以需要重写ServletResponse来保存传到输出流的内容;com.github.i...
  • list不知道怎么加入数据,也不知道怎么加入。 希望大神们帮帮忙解答下 以下service层代码 ``` String[] excelHeader = { "title", "urgency", "projectman"}; public HSSFWorkbook export(List...
  • 有时候在开发过程会有这样一个场景,有时需要对返回的数据进行处理。比如加密啊,添加某些标记啊等等。这种情况我们可以通过过滤器去处理。 过滤器是什么就不介绍了,百度一下,你就知道。 看看代码吧: 返回值...
  • 为什么要统一返回值在我们做后端应用时候,前后端分离情况下,我们经常会定义一个数据格式,通常会包含code,message,data这三个必不可少信息来方便我们交流,下面我们直接来看代码ReturnVOpackage indi....
  • 一、入参打印 JSON.toJSONString(servletRequest.getParameterMap()));...ServletResponse中将输出流,直接获取流并不能获取中的数据,只可以改写响应流,替换响应内容;所以需要重写ServletResponse来保...
  • response乱码指的是:服务器向浏览器发送的数据包含中文字符,浏览器显示的是乱码;乱码产生的原因:不管是request乱码还是response乱码,其实都是由于客户端(浏览器)跟服务器端采用的编码格式不一致造成的。以...
  • 目录 介绍 依赖 工具类 控制层 ...实现java springboot 导出dbf通过如下...工具类会生成文件然后把list解析把数据生成dbf到文件 4.通过response 返回给页面客户端文件 5.删除之前创建本地dbf文件 ok ...
  • 在很多情况下我们在进行接口测试的时候都会有获取上个接口返回的json数据中的某个key值,然后下个接口调用这个key值。今天给大家讲解一下针对不同类型的json获取某个key的值。一、首先是单纯object格式key值获取 ...

空空如也

空空如也

1 2 3 4 5 ... 19
收藏数 380
精华内容 152
关键字:

java获取response中的数据

java 订阅