JAVA http请求接口数据

HttpURLConnection源码分析 本文概述 从源码角度理解HttpURLConnection是怎么一步步封装底层socket调用的。 HttpURLConnection使用回顾 我们先来回顾一下它的用法: new Thread(() -> { HttpURLConnection connection = null; BufferedReader reader = null; try{ URL url = new URL("https://www.baidu.com");//新建URL .. 阅读详情

本次以访问百度地图服务API 为例 

 编写访问程序 

一、解析url 方法  把返回数据 封装成StringBuffer 字符串

public static StringBuffer httpsRequest(String requestUrl, String requestMethod, String output) throws IOException,

        UnsupportedEncodingException {

    URL url = new URL(requestUrl);

    if (requestUrl.startsWith("https")) {

        HttpsURLConnection connection = (HttpsURLConnection) url.openConnection();

        connection.setDoOutput(true);

        connection.setDoInput(true);

        connection.setUseCaches(false);

        connection.setRequestMethod(requestMethod);

        if (null != output) {

            OutputStream outputStream = connection.getOutputStream();

            outputStream.write(output.getBytes("UTF-8"));

            outputStream.close();

        }

        // 从输入流读取返回内容

        InputStream inputStream = connection.getInputStream();

        InputStreamReader inputStreamReader = new InputStreamReader(inputStream, "utf-8");

        BufferedReader bufferedReader = new BufferedReader(inputStreamReader);

        String str = null;

        StringBuffer buffer = new StringBuffer();

        while ((str = bufferedReader.readLine()) != null) {

            buffer.append(str.trim());

        }

        bufferedReader.close();

        inputStreamReader.close();

        inputStream.close();

        inputStream = null;

        connection.disconnect();

        return buffer;

    } else {

        HttpURLConnection connection = (HttpURLConnection) url.openConnection();

        connection.setDoOutput(true);

        connection.setDoInput(true);

        connection.setUseCaches(false);

        connection.setRequestMethod(requestMethod);

        if (null != output) {

            OutputStream outputStream = connection.getOutputStream();

            outputStream.write(output.getBytes("UTF-8"));

            outputStream.close();

        }

        // 从输入流读取返回内容

        InputStream inputStream = connection.getInputStream();

        InputStreamReader inputStreamReader = new InputStreamReader(inputStream, "utf-8");

        BufferedReader bufferedReader = new BufferedReader(inputStreamReader);

        String str = null;

        StringBuffer buffer = new StringBuffer();

        while ((str = bufferedReader.readLine()) != null) {

            buffer.append(str.trim());

        }

        bufferedReader.close();

        inputStreamReader.close();

        inputStream.close();

        inputStream = null;

        connection.disconnect();

        return buffer;

    }

}

二、调用解析方法 处理接口返回数据

/**
 * 地铁信息类
 * @return
 */
public class StationInfo {
    private String stationName;
    private String lng;
    private String lat;
    private String subway;
    public String getStationName() {
        return stationName;
    }
    public void setStationName(String stationName) {
        this.stationName = stationName;
    }
    public String getLng() {
        return lng;
    }
    public void setLng(String lng) {
        this.lng = lng;
    }
    public String getLat() {
        return lat;
    }
    public void setLat(String lat) {
        this.lat = lat;
    }
    public String getSubway() {
        return subway;
    }
    public void setSubway(String subway) {
        this.subway = subway;
    } 
}

/**
 * 根据经纬度,及其范围距离来获取地铁站点集合
 * @param lng
 * @param lat
 * @param range
 * @return
 */
public List<StationInfo> getStationByLngLat(String lng, String lat, int range){

    int radius=range;//搜索的半径范围  
    String url="http://api.map.baidu.com/place/v2/search?query=地铁站&page_size=10&page_num=0&scope=1&location="+lat+","+lng+"&radius="+radius+"&output=json&ak={百度服务API秘钥}";
    List<StationInfo> list=new ArrayList<StationInfo>();
    try {
        //  System.out.println(HttpConnectionUtil.httpsRequest(url, "GET", null).toString());
        JSONObject jsonObject= JSONObject.fromObject( HttpConnectionUtil.httpsRequest(url, "GET", null).toString());
       // System.out.println("我是:"+jsonObject.get("results"));
        // System.out.println("我是2:"+jsonObject.get("total"));

        JSONArray arrays=jsonObject.getJSONArray("results");
        if(arrays==null){//如果没有则返回空
            return null;
        }
        if(arrays.size()>0){
            for (int i=0;i<arrays.size();i++){
                StationInfo stationInfo=new StationInfo();
                JSONObject jsonObject1=JSONObject.fromObject(arrays.getJSONObject(i));
                stationInfo.setLat(jsonObject1.getJSONObject("location").get("lat").toString());
                stationInfo.setLat(jsonObject1.getJSONObject("location").get("lng").toString());
                stationInfo.setStationName(jsonObject1.get("name").toString());
                String subwayStr=jsonObject1.get("address").toString();
                String[] subways=subwayStr.split(";");
                stationInfo.setSubway(subways[0]);
                list.add(stationInfo); 
            }
        }

    } catch (IOException e) {
        e.printStackTrace();
    }
    return list;
}
      
/**
 * 调用方法查看结果
 */
public static void main(String[] args) throws Exception {
    String lat = "39.915"; 
    String lng = "116.404";  
    Integer radius = 500; // 圆形区域大小
    MapUtil mapUtil = new MapUtil();
    List<StationInfo> list = mapUtil.getStationByLngLat(lng, lat, radius);
    for (StationInfo temp : list) {
        System.out.println(temp.getStationName());
    }
}


C#智能设备 Windows CE利用http请求调用Java接口查询数据 项目需要用手持终端调用Java接口,手持终端是Windows ce 6.0 系统,下面代码是手持终端扫描条码后调用Java接口查询数据,查询出来的数据返回的是一串json数据,所以还需要创建相应的实体类 private void button1_Click(object sender, EventArgs e) { StreamReader reader 阅读详情

相关推荐

嵌入式开源项目哪里找

对比产生的伤害是经验思考积累下的差距,知道自己不知道什么然后前进去追寻。

quanquanxiaobu的博客 3944

Http学习之使用HttpURLConnection发送post和get请求

最常用的Http请求无非是get和post,get请求可以获取静态页面,也可以把参数放在URL字串后面,传递给servlet,post与get的不同之处在于post的参数不是放在URL字串里面,而是放在http请求的正文内。在Java中可以使用HttpURLConnection发起这两种请求,了解此类,对于了解soap,和编写servlet的自动测试代码都有很大的帮助。下面的代码简单描述了如何使用

aneka的百宝盒 1358

MAIXCAM无线连接实战:5分钟搞定远程调试与代码烧录(避坑版)

本文提供了一份详细的MAIXCAM无线连接实战指南,帮助嵌入式视觉开发者快速配置远程调试与代码烧录。文章重点介绍了通过MaixHub IDE进行Wi-Fi配置、建立远程终端连接、使用SFTP进行文件传输以及管理自启动应用程序的完整流程,并针对IP地址变动、信号中断等常见问题提供了实用的避坑解决方案,旨在提升开发效率与灵活性。

weixin_29188043的博客 298

HttpUrlConnection使用

在Android开发中网络请求是最常用的操作之一, Android SDK中对HTTP(超文本传输协议)也提供了很好的支持,这里包括两种接口: 1、标准Java接口(java.NET) —-HttpURLConnection,可以实现简单的基于URL请求、响应功能; 2、Apache接口(org.appache.http)—-HttpClient,使用起来更方面更强大。 但在android API...

just Go! 676

Gromacs空蛋白模拟实战:从PDB文件到动力学轨迹的完整流程解析

本文详细解析了使用Gromacs进行空蛋白分子动力学模拟的完整实战流程。从PDB文件处理、力场选择与拓扑构建,到模拟盒子创建、溶剂化与电荷中和,再到能量最小化、NVT/NPT平衡及最终的生产模拟与基础分析,提供了每一步的命令详解和关键注意事项,旨在帮助计算生物学研究者系统掌握这一核心研究工具。

weixin_28454475的博客 276

反向代理的隐形陷阱:为何你的HTTPS请求会降级为HTTP?

本文深入探讨了Nginx反向代理中HTTPS降级为HTTP的隐形陷阱及其安全风险,分析了五大降级诱因,包括协议信息丢失、重定向配置错误等,并提供了完整的防御性配置方案和实战指南,帮助开发者确保Web应用的安全性。

kotlin6android的博客 453

HttpURLConnection getInputStream异常的解决

因为看了许多优快云文章,也没有找到对应的解决方法,所以把最近遇到的一个问题写出来,对以后遇到问题的伙伴们提供点帮助。 其实问题很简单,就是很正常的HttpURLConnection POST连接,当getResponseCode为HttpURLConnection.HTTP_OK(200)和HttpURLConnection.HTTP_CREATED(201)时没有任何问题。 但是当

灵犀的博客 5万+

【电驱动】永磁同步电机工作原理及分类

永磁同步电机工作原理及分类

星Yeah 的博客 7325

java调用接口HttpPost废话不多直接代码

import java.io.BufferedReader; import java.io.InputStream; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.HttpURLConnection; import java.net.URL; public class ToInter...

Zyy_z_的博客 1050

【反蒸馏实战 00】AI抢不走的工作:一份针对30个“高危”职位的“反取代”实战手册(反蒸馏计划启动)

AI时代职场生存指南:30个技术岗位的“反蒸馏”实战策略 随着AI技术快速发展,职场正面临前所未有的结构性重构。本系列专栏聚焦30个技术岗位,深入分析AI对各职位的影响路径,并提供系统性的"反蒸馏"策略。通过5层分析框架(AI冲击现状、核心价值解构、AI天花板、能力升级路径、人机协作模式),帮助从业者识别可替代任务与核心价值,建立不可替代的专业优势。内容涵盖IT开发、数据分析、产品管理等技术领域,为职场人提供从“被AI替代”到“与AI协同”的转型路线图,守护职业价值。

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 1650

记录Rancher集群中coredns问题导致的服务DNS解析超时

coredns问题处理

1359

JAVA使用http请求,实现webservice接口数据调用

JAVA使用http请求,实现webservice接口数据调用 前言 第一次接触webservice的调用,在经过了这个过程之后,不得不说,比较麻烦。总结一下网上的各种方案 1、直接AXIS调用远程的web service 2、直接SOAP调用远程的webservice 3、生成客户端调用方式 4、HTTP请求方式 由于对HTTP笔记熟悉一点,因此才用了http求情的方式。下面详细介绍一下整个使用...

weixin_42418589的博客 3835

Coffin-Manson模型的详细讲解

Coffin-Manson模型是一个简单而强大的工具,用于预测低循环疲劳寿命,尤其在半导体功率循环中评估热机械可靠性。其核心是通过应变(或温度变化)与循环次数的对数关系,实现加速测试和寿命外推。尽管有局限性,通过改进版本(如加入激活能),它在电子封装、焊点疲劳和器件设计中仍广泛应用。实际使用时,建议结合实验数据拟合参数,并验证模型预测。如果需要特定材料的参数值、代码实现或进一步计算示例,请提供更多细节!

专注于前沿技术的探索与实践,热衷于从代码逻辑、架构设计到行业应用等多维度深挖技术本质。期待在技术之路上与你共同成长~ 2149

JAVA 请求http接口返回json数据解析

/**      * @param args      */     public static void main(String[] args) throws Exception{         URL yahoo = new URL("http://www.baidu.com/query.jsp?param1=value2&param2=value2");         URLC

qq_22343799的博客 3218

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

java向http接口发送请求并接收返回数据

import java.io.BufferedInputStream; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.util.ArrayList; import java.u...

chiai2298的博客 1924

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

c 调用java接口乱码_今天 java http post请求调用第三方接口返回的数据中文乱码

今天 java http post请求调用第三方接口返回的数据中文乱码@RequestMapping(value="/getRank",produces = "text/plain;charset=utf-8")public @ResponseBody String getRank(int taskid) throws UnsupportedEncodingException, IOExcept...

weixin_28898707的博客 1469

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

java接收请求_java向http接口发送请求并接收返回数据

import java.io.BufferedInputStream;import java.io.ByteArrayOutputStream;import java.io.IOException;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import...

weixin_32457141的博客 1781

java 使用 okhttp发送http请求获取接口数据

为什么需要使用okhttp: 目前我们学习的所有中只有html中的超链接和form表单才可以发送http请求,另外一个就是ajx异步发送http请求获取数据。 但是在实际开发需求中,比如我们的安卓程序需要从服务器获取数据,我们就需要利用java代码来发送http请求,这个时候就需要使用一个插件,这个老版本叫httpClient,这个不怎么好用, 现在大部分使用okhttp 首...

sky274548769的博客 4535

Node.js http请求java后台数据接口方法总结

var http = require("http"); var data = { username:"name", password:"123456" }; data = JSON.stringify(data); var opt = { host:'localhost', port:'8080', method:'POST', path:...

xiangzaixiansheng的博客 2861

Java多线程请求http接口并整合响应数据后返回

CountDownLatch是一个同步工具类,它通过一个计数器来实现的,初始值为线程的数量。每当一个线程完成了自己的任务,可以通过它的countDown()方法使计数器的值减1。当计数器到达0时,表示所有的线程都已执行完毕,然后在等待的线程就可以恢复执行任务。该第三方get接口能拼的param数量有限,因此需要分批多次请求,同步的话性能太差,所以开多个线程同时请求,等待所有线程都结束后,把获取到的数据返回。实现一个接口,接口内部请求第三方http接口获取数据后返回;

weixin_49809649的博客 2077

java读取excel文件中数据作为参数循环调用http 的put请求接口

需求背景:这个系统只有单条新增的功能,现在需要把excel文件中的数据大量插入进去,人工操作太费时费力,又没有系统源码,没法直接开发导入的功能,只好采用循环调用http接口的方式进行插入。 需要的maven依赖: <!--读取excel依赖--> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId>

my_power520的博客 1365

java xml请求接口_用http请求方式调用sap接口,以xml格式数据交换

import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.OutputStreamWriter;import java.net.HttpURLConnection;import java.net.URL;import org.apache.comm...

weixin_35566895的博客 405

java 请求http 返回json数据_java调用http接口并返回json对象-Go语言中文社区

1 import java.io.BufferedReader;2 import java.io.InputStreamReader;3 import java.io.OutputStreamWriter;4 import java.io.PrintWriter;5 import java.net.URL;6 import java.net.URLConnection;7 import java....

weixin_31050349的博客 418

java接口自动化框架源代码,支持http/https协议请求{get,post..},支持接口关联,接口检查点,参数化,数据库sql检查,数据库数据备份等

java接口自动化框架源代码 基本结构:httpClient+Excel+Maven 1,支持http/https协议请求{get,post…} 2,支持接口关联,接口检查点,参数化,数据库sql检查,数据库数据备份等

m0_60300827的博客 185

HTTP接口请求工具

1.HTTP实现接口对接代码示例: import com.alibaba.fastjson.JSONObject; import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.client.HttpClient; import org.apache.http.clien...

Acompanys的博客 411

蓝易云 - Java http 接口请求详解

Java 中进行 HTTP 接口请求的方式有多种,常用的方式包括使用 Java 原生的 HttpURLConnection 类、Apache HttpClient 库和 Spring 的 RestTemplate。通过以上示例,你可以根据需要选择合适的方式来进行 Java 中的 HTTP 接口请求,以便与其他服务进行数据交互。

高性价比服务器就选:蓝易云 798
上一篇: js 跨域请求外部服务器的资源
下一篇: Linux ssh 远程 jps command not found
韦斌_alan
博客等级 码龄12年 3粉丝 5原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值