httpURLConnection 报错 java.net.ConnectException: localhost/127.0.0.1:8080 - Connection refused

HttpURLConnection在请求接口异常时获取接口返回信息IO异常解决 背景: 使用HttpURLConnection写的一个HttpUtil工具类,在正常访问到接口不会有问题,但是在异常的场景中,比如401,400,505等场景中会返回IO异常,而不是原来接口返回的 401,400,502等的接口返回信息 Returns the error stream if the connection failed but the server sent useful data nonetheless. 原来通过这个方法我们才能获取到responseCode不为200时(connec 阅读详情
03-20 13:56:19.120 382-393/? W/System.err: java.net.ConnectException: localhost/127.0.0.1:8080 - Connection refused
03-20 13:56:19.170 382-393/? W/System.err:     at org.apache.harmony.luni.net.PlainSocketImpl.connect(PlainSocketImpl.java:207)
03-20 13:56:19.170 382-393/? W/System.err:     at org.apache.harmony.luni.net.PlainSocketImpl.connect(PlainSocketImpl.java:437)
03-20 13:56:19.180 382-393/? W/System.err:     at java.net.Socket.connect(Socket.java:983)
03-20 13:56:19.180 382-393/? W/System.err:     at org.apache.harmony.luni.internal.net.www.protocol.http.HttpConnection.<init>(HttpConnection.java:75)
03-20 13:56:19.220 382-393/? W/System.err:     at org.apache.harmony.luni.internal.net.www.protocol.http.HttpConnection.<init>(HttpConnection.java:48)
03-20 13:56:19.220 382-393/? W/System.err:     at org.apache.harmony.luni.internal.net.www.protocol.http.HttpConnection$Address.connect(HttpConnection.java:322)
03-20 13:56:19.220 382-393/? W/System.err:     at org.apache.harmony.luni.internal.net.www.protocol.http.HttpConnectionPool.get(HttpConnectionPool.java:89)
03-20 13:56:19.220 382-393/? W/System.err:     at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnectionImpl.getHttpConnection(HttpURLConnectionImpl.java:285)
03-20 13:56:19.230 382-393/? W/System.err:     at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnectionImpl.makeConnection(HttpURLConnectionImpl.java:267)
03-20 13:56:19.230 382-393/? W/System.err:     at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnectionImpl.retrieveResponse(HttpURLConnectionImpl.java:1018)
03-20 13:56:19.230 382-393/? W/System.err:     at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnectionImpl.getResponseCode(HttpURLConnectionImpl.java:726)

03-20 13:56:19.250 382-393/? W/System.err:     at tech.androidstudio.readfileshttpurlconnection.MainActivity.run(MainActivity.java:38)


原因分析:

我在模拟器上面运行的时候localhost 就是模拟器的ip地址了,所以在请求的时候的URL 里面应该使用的是电脑的ip地址。


解决方法:

将下面的

URL url = new URL("http://localhost:8080/tomcat.png");
修改为

URL url = new URL("http://192.168.1.106:8080/tomcat.png");


package tech.androidstudio.readfileshttpurlconnection;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.ProtocolException;
import java.net.URL;

public class MainActivity extends AppCompatActivity implements Runnable {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Thread thread = new Thread(this);
        thread.start();
    }

    @Override
    public void run() {
        try {
            //TODO 这里的ip 地址一定不能使localhost 一定要是电脑的或者是正式ip地址.
            //如果写成了localhost,那么就会报错java.net.ConnectException: localhost/127.0.0.1:8080 - Connection refused
//            URL url = new URL("http://localhost:8080/tomcat.png");
            URL url = new URL("http://192.168.1.106:8080/tomcat.png");
            HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();
            httpURLConnection.setRequestMethod("GET");
            httpURLConnection.setConnectTimeout(5000);
            //Sets the flag indicating whether this URLConnection allows input. It cannot be set after the connection is established.
            httpURLConnection.setDoInput(true);

            InputStream in = null;
            FileOutputStream fos = null;
            if (httpURLConnection.getResponseCode() == 200) {
                in = httpURLConnection.getInputStream();
                //一定不能直接在FileOutputStream里面写文件名,需要添加路径
                //错误的写法:fos = new FileOutputStream("a.bmp");
                //下面存储到内部存储的私有的cache目录里面,注意了生成的文件名是cachea.bmp
                fos = new FileOutputStream(getCacheDir().getPath()+"a.bmp");
                byte[] arr = new byte[1024];
                int len = 0;
                while ((len = in.read(arr)) != -1) {
                    fos.write(arr, 0, len);
                }
                in.close();
                fos.close();
            }

        } catch (MalformedURLException e) {
            e.printStackTrace();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (ProtocolException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}



Spring Cloud Gateway网关 Spring Cloud Gateway网关 简介 Spring Cloud Gateway是Spring官网基于Spring 5.0、 Spring Boot 2.0、Project Reactor等技术开发的网关服务。 Spring Cloud Gateway基于Filter链提供网关基本功能:安全、监控/埋点、限流等。 Spring Cloud Gateway为微服务架构提供简单、有效且统一的API路由管理方式。 Spring Cloud Gateway是替代Netflix Zuul的一套解决方案。 阅读详情

相关推荐

Spring报org.apache.http.conn.HttpHostConnectException: Connect to localhost:8080 [localhost/127

学习目标: 1、一周掌握 JAVA入门知识 2、掌握基础入门C#知识 3、手把手教你vbs脚本制作 4、强大的 IDEA编程利器 5、经典常见的 面试题目技巧 6、家居生活风水一点通 Spring报org.apache.http.conn.HttpHostConnectException: Connect to localhost:8080 [localhost/127学习目标:报错的原因解决的办法总结 报错的原因 没有启动项目就测试接口 解决的办法 1.检查mysql服务启动了没有! 2.数据库驱动

王大师企业官方博客 6407

Android get请求出现java.net.ProtocolException: Unexpected status line

Android get请求出现java.net.ProtocolException: Unexpected status lineAndroid 在做get请求时出现java.net.ProtocolException: Unexpected status line这种错误的时候,一定要检查你的URL是不是出现了换行符或者是其他的符号, 解决办法是用UrlEncode.encode()一下就可以

a5911188的专栏 7769

从零配置华为S5720交换机VLAN:Web界面与命令行双模式详解(附拓扑图)

本文详细解析华为S5720交换机VLAN配置的全过程,涵盖Web界面与命令行(CLI)双模式操作指南。从基础环境准备到多交换机环境配置同步,特别针对S5720-52X系列交换机的VLANif接口、端口分配策略及交换机堆叠技术进行深入讲解,并附实用拓扑图与配置示例,助力企业网络管理员高效完成VLAN部署。

happy2的博客 1370

android客户端程序连接服务器总是失败,出现IOException

下面这段代码在程序中运行出现IOException /** * 下载线程 */ private Runnable runnable = new Runnable() { @Override public void run() { // TODO Auto-generated method stub try { URL url

lichao_1987的专栏 1604

【NAS系统】DSM7.2部署SVN服务

早期的群晖版本可以在套件中心找到SVN Server直接安装,然后配置仓库和用户。但‌2提到DSM7.0之后套件中心没有SVN了,得用Docker。

qq_38350004的博客 4847

瑞萨RA6M4平台I2C驱动移植实战:MPU6050传感器集成指南

本文详细介绍了在瑞萨RA6M4平台上进行I2C驱动移植并集成MPU6050传感器的实战指南。通过FSP配置工具添加I2C主栈,适配MPU6050官方驱动,实现传感器数据读取与调试,为嵌入式开发提供完整的解决方案。

banana的博客 109

HttpURLConnection超时和IO异常处理

最近同步数据的时候发现了一个问题,我本身后台插入数据后给其他部门后台做同步。说简单一点其实就是调用对方提供的接口,进行HTTP请求调用。然后后面发现问题了。HTTP请求的话,有可能请求超时,中断失败,IO异常其实都有可能,如果是平时打开一个网页还好,打不开的时候,你会关掉,或者他页面给你显示信息。但是同步,不可以这样做,一旦请求失败,必须让数据正确的同步,今天才意识到这个问题的重要性。String

iaiti的专栏 2万+

告别时钟树平衡噩梦:在Innovus中巧妙设置stop/ignore pin来优化分段时钟网络

本文深入探讨了在Innovus工具中利用stop/ignore pin优化分段时钟树网络的高阶技巧。针对数字IC后端设计中的时钟树平衡难题,详细解析了特殊引脚属性的战略应用场景和配置方法,帮助工程师有效解决SoC设计中复杂的时钟结构问题,显著提升时序收敛效率。

weixin_30836759的博客 288

HttpURLConnection出现cannot write request body after response has been read

HttpURLConnection 中出现java.net.ProtocolException: cannot write request body after response has been read HttpURLConnection是Android原生自带的网库请求框架,因为轻量级的原因很多SDK会使用到它,最近在项目中发现一个问题 ...

二两陈皮的博客 2006

【Autoware】2小时安装Autoware1.13(保姆级教程)

Autoware是一款“一体化”开源自动驾驶软件,能实现感知、决策、控制等功能,通过在Ubuntu中搭建Autoware开发环境和案例的运行,使大家对自动驾驶技术的实现有一个更清晰的认识。

DevFrank的博客 1万+

电路设计仿真软件:Mentor Graphics_(1).MentorGraphics电路设计仿真软件概述

菜单栏:包含文件、编辑、视图、工具等菜单。工具栏:提供常用的工具按钮,如打开、保存、仿真等。原理图编辑区:用于绘制电路原理图。元件库:包含各种电路元件,支持拖拽操作。属性面板:显示选中元件的属性,可以进行参数设置。仿真控制区:用于设置仿真参数和控制仿真过程。输出窗口:显示仿真结果和日志信息。打开模型编辑器:点击“工具”菜单,选择“模型编辑器”。选择模型类型:在模型编辑器中选择模型类型,如SPICE模型。输入模型参数:根据需要输入模型的参数,如电阻值、电容值等。保存模型。

kkchenjj的博客 1924

ERROR: unexpected error - Failed to connect to proxy URL: “http://127.0.0.1:8080/“

记录使用git遇到的问题

胡侃有料的博客 1748

数学建模算法案例精讲500篇-【深度强化学习】深度确定性策略梯度(DDPG)(附MATLAB和python代码实现)

它是一种学习连续动作的无模型策略算法。它结合了DPG(确定性策略梯度)和DQN(深度Q网络)的思想。它利用DQN中的经验重放和延迟更新的目标网络,并基于DPG,可以在连续的动作空间上运行。# 用于生成带有噪声的动作def __init__(self, action_space, mu=0.0, theta = 0.15, max_sigma = 0.3, min_sigma = 0.3, decay_period = 100000):#decay_period要根据迭代次数合理设置# 均值 mu。

qq_36130719的博客 325

已解决java.net.ProtocolException异常的正确解决方法,亲测有效!!!

已解决java.net.ProtocolException异常的正确解决方法,亲测有效!!!

小明的Java问道之路 2万+

计算机网络实验报告实验七可靠传输TCP协议分析

计算机网络实验报告实验七可靠传输TCP协议分析

m0_56638814的博客 966

VC中sqlite的使用

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

OkHttp抛出异常java.net.ProtocolException: unexpected end of stream

今天用okHttp写了个从本地的Apache服务器上下载资源的安卓app,然后发现偶尔的下载会抛出java.net.ProtocolException: unexpected end of stream的异常,苦思不得结果后上百度查找,百度有很多分析,有可能的原因是响应头Content-length和实体长度不同,找到几个方法,有的说在请求头中添加Accept-Encoding,值为identity;然后抛出这个异常后,我打印已下载文件内容的长度,发现只比响应头的Content-length少一字节。

. 5680

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

请求失败:java.net.ConnectException: failed to connect to localhost/127.0.0.1 (port 8080) from /127.0.0.1

请求失败:java.net.ConnectException: failed to connect to localhost/127.0.0.1 (port 8080) from /127.0.0.1

T_Y_F_的博客 4008

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

java 报错 rmi:rmi Connection refused to host: 127.0.0.1 解决方法

官方不推荐这样部署,但是我们认为,这种非侵入的采集方式非常灵活,好更新维护,对kafka影响降到最低。解耦的部署我们非常喜欢。当中也踩到坑,就是httpserver形式,会有cpu暴增的异常,这个issue有人在社区反映了,因为里面使用了5个线程的线程池,是hardcode,不能在部署的时候灵活改变,可以自己编译更新code来解决这个问题。要想知道这个hostname具体是什么值可以在服务器端bash中打入指令:hostname -i 如果返回的是127.0.0.1,那么你的客户端肯定会抛如标题的异常了。

whatday的专栏 1619

《踩坑日记》org.apache.http.conn.HttpHostConnectException: Connect to localhost:80 failed: Connection ref

org.apache.http.conn.HttpHostConnectException: Connect to localhost:80 failed: Connection ref

m0_60509400的博客 6950

Spring Cloud Consul启动时出现的问题

启动时报错:8500 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Connection refused: connect 问题解决:没有安装consul。去官网https://www.consul.io/ 下载个Windows版的。想配置在path路劲下。结果没反应。最后建个bat文件。里面内容(consul agent -...

JM__SUN的博客 8183

鱼皮项目_用IDEA自带的测试工具报错

使用IDEA自带的测试工具测试,启动报错

m0_57855994的博客 2724

微服务的下一步,离不开服务网格

原文发表于kubernetes中文社区,为作者原创翻译,原文地址 更多kubernetes文章,请多关注kubernetes中文社区 目录 微服务面临的挑战 微服务的解决方案 结论 软件行业走了很长一段路,在整个过程中,软件体系结构也已经发展了很多。经历了1层(单节点),2层(客户端/服务器),3层和分布式,我们在此过程中看到了一些不同的软件架构模式。 微服务面临的挑战 大多数软件公司,正从单体架构(Monolithic)过渡到微服务架构(Microservices),而微服务架构(M..

琦彦 3953

SpringCloudGateway + consul org.apache.http.conn.HttpHostConnectException: Connect to localhost:8500

com.ecwid.consul.transport.TransportException: org.apache.http.conn.HttpHostConnectException: Connect to localhost:8500 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Connection refused: connect

鸢尾_的博客 6968

consul报错Error watching Consul CatalogServices

在SpringCloud中使用consul,报错。前台启动,直接Ctrl + c 即可。

wuwangzeguo的博客 661
上一篇: eclipse 是用来写客户端的,MyEclipse 是用来写服务器端的,谐音记忆法,My 买,买服务器这样就好记了。
下一篇: new FileOutputStream("a.bmp") 报错java.io.FileNotFoundException: /a.bmp (Read-only file system)
千雅爸爸
博客等级 码龄18年 292粉丝 639原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值