首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >使用retrofit2时,如何修复连接失败的错误?

使用retrofit2时,如何修复连接失败的错误?
EN

Stack Overflow用户
提问于 2019-05-09 21:36:16
回答 3查看 5.6K关注 0票数 1

我有一个应用程序,我使用retrofit2连接到rest api。每次我尝试使用它时,我都会得到一个错误:“连接失败”。我不知道问题出在哪里。我希望能够连接到rest api并使用我的GET请求。

代码语言:javascript
运行
AI代码解释
复制
public static final String APP_BASE_URL="http://URL.com/";

Retrofit retrofit=new Retrofit.Builder()
    .baseUrl(APP_BASE_URL)
    .addConverterFactory(GsonConverterFactory.create())
    .build();

MyApiendpoint apiService=retrofit.create(MyApiendpoint.class);
Call<Bmwsales> call=apiService.getVehicle(barCode);

call.enqueue( new Callback<Bmwsales>() {

    @Override
    public void onResponse(Call<Bmwsales> call, Response<Bmwsales> response) {
        System.out.println("SUCCESSFULL!!!");
    }

    @Override
    public void onFailure(Call<Bmwsales> call, Throwable t) {
        System.out.println("FAILURE!!!"+t.getMessage());
    }
});

public interface MyApiendpoint {

    @GET("bmwsales/vin/{vin}")
    Call<Bmwsales> getVehicle(
        @Path("vin") String vin
    );
}

我不知道哪里出了问题。我已经看了很多例子,但仍然不能理解。

EN

回答 3

Stack Overflow用户

发布于 2019-05-09 23:05:03

你的代码没有问题。

但我建议你检查并尝试一些东西

首先,请确保您使用的是最新版本的

代码语言:javascript
运行
AI代码解释
复制
implementation 'com.squareup.retrofit2:retrofit:2.5.0'

第二,尝试添加一个截取程序到Retrofit,然后检查日志以查看发送到服务器的实际请求,以及您是否可以毫无问题地到达该

下面是一个使用Okhttp的示例

代码语言:javascript
运行
AI代码解释
复制
  // Create a new object from HttpLoggingInterceptor
  HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor();
  interceptor.setLevel(HttpLoggingInterceptor.Level.BODY);

  // Add Interceptor to HttpClient
  OkHttpClient client = new OkHttpClient.Builder().addInterceptor(interceptor).build();

  // Init retrofit object
  Retrofit retrofit = new Retrofit.Builder()
           .baseUrl(APP_BASE_URL)
           .addConverterFactory(GsonConverterFactory.create())
           .client(client) // Set HttpClient to be used by Retrofit
           .build();

不要忘记将Okhttp日志拦截器添加到您的依赖项中

代码语言:javascript
运行
AI代码解释
复制
 implementation 'com.squareup.okhttp3:logging-interceptor:3.12.1'

第三,也许你的连接太慢了,你只需要增加超时时间就行了!

代码语言:javascript
运行
AI代码解释
复制
 OkHttpClient client = new OkHttpClient.Builder()
         .readTimeout(60, TimeUnit.SECONDS)
         .connectTimeout(60, TimeUnit.SECONDS)
         .addInterceptor(interceptor).build();
票数 1
EN

Stack Overflow用户

发布于 2019-05-09 23:15:25

http://和“连接失败”可能意味着,您必须添加允许与主机进行明文通信的network_security_config.xml,或者为该应用程序接口安装有效的SSL证书。NetworkSecurityPolicy.isCleartextTrafficPermitted()告知当前状态。这是我的answerdocumentation的相似之处。一个人可能不会截获任何调用,因为它可能从未发生过;还要确保URL在浏览器中工作。如果vin代表一个车辆识别号,我会称之为Call<Vehicle>

票数 0
EN

Stack Overflow用户

发布于 2019-05-09 23:42:35

您是否在清单中声明了互联网权限?

代码语言:javascript
运行
AI代码解释
复制
<manifest xlmns:android...>
 ...
 <uses-permission android:name="android.permission.INTERNET" />
 <application ...
</manifest>```

EDIT : 
Can check your base URL again please ? you can use fake API endpoint to be sure that the issue is not with your Retrofit configuration, yu can use this endpoint : [JSONPlaceholder][1]


  [1]: https://jsonplaceholder.typicode.com/posts
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56067920

复制
相关文章
Centos下添加用户到用户组
将一个用户添加到用户组中,千万不能直接用: usermod -G groupA
全栈程序员站长
2022/07/07
3.6K0
linux中vi和vim操作
vim可以看做是vi增强版,具有程序编辑能力,支持语法高亮,代码补全,编译及错误跳转等功能,因此被广泛使用
小小咸鱼YwY
2020/06/19
6.3K0
linux中vi和vim操作
linux中vi,vim操作技巧
配置vim /etc/vimrc配置项全局生效,对所有用户生效 .vimrc家目录下,只针对某个用户生效 > vim /etc/vimrc set number #显示行号 set autoindent #自动缩进 set nowarp #不换行 退出vim编辑器 保存退出 使用 Vim 编辑器保存并退出编辑状态是一件轻而易举的事,你只需记住按 ESC 键切换到正常模式,然后输入冒号(:),之后输入wq即可实现保存并退出。 > vim rumenz.txt 123 :wq 直接退出 如果
入门笔记
2022/06/02
4.6K0
linux中vi,vim操作技巧
原文链接:https://rumenz.com/rumenbiji/linux-vi-vim-skills.html
入门笔记
2021/10/12
2.6K0
linux 添加用户到sudo中
步骤 1. 先切到root用户 2. 执行visudo,其实就是修改/etc/sudoers 3. 添加用户,规则如下: youuser ALL=(ALL) ALL %youuser ALL=(ALL) ALL youuser ALL=(ALL) NOPASSWD: ALL %youuser ALL=(ALL)
千往
2018/01/24
4.1K0
Linux中vi与vim编辑操作
命令模式到编辑模式:插入命令i,附加命令a,打开命令o,修改命令c,取代命令r,替换命令s
CtrlX
2022/11/18
3.1K0
怎么退出vi编辑界面_centos保存退出vim
今天在虚拟机上练习如何自动挂载的时候,按照提示在命令行输入vi /etc/fstab,如下图:
全栈程序员站长
2022/11/11
7.3K0
怎么退出vi编辑界面_centos保存退出vim
Vi 和 Vim 的使用
Vi (Visual Interface)是 Linux下基于Shell 的文本编辑器,Vim (Visual Interface iMproved)是 Vi的增强版本,扩展了很多功能,比如对程序源文件的语法高亮。不管是 Vi 还是 Vim,我们习惯上都管它叫 Vi,但实际上用的更多的是 Vim。
Coding十日谈
2020/08/13
9410
Vi 和 Vim 的使用
Vim 和 Vi 的区别
第二次上 Linux 课的时候老师用到了 Vi 编辑器,然后提到了 Vim 但是没有用,于是我很疑惑二者的关系,发讨论问了一下同学,有人说 Vim 是 Vi 的爸爸。
wsuo
2020/07/31
9890
vi,vim的使用方法
Linux中已经广泛集成vi或者vim文件编辑器,在使用终端的过程中,经常要编辑文件,那么必然要用到vi,vim.
laoknas网络技术
2021/07/14
4180
linux vim dd命令_vim命令和vi的区别
Vim是从vi发展而来的文本编辑器,可以用颜色或底线等方式来显示一些特殊的信息。Vim是Linux中必不可少的工具,搭建网站修改配置文件时经常用到。本教程介绍Vim的模式和常用操作。
全栈程序员站长
2022/11/08
4.8K0
linux之vi,vim命令
表示当前行的下一行的行尾b按照单词向前移动 字首e按照单词向后移动 字尾w按照单词向后移至次一个字首H移动到屏幕最上 非空白字M移动到屏幕中央 非空白字L移动到屏幕最下 非空白字G移动到文档最后一行gg移动到文档第一行v进入光标模式,配合移动键选中多行Ctrl+f向下翻页Ctrl+b向上翻页u撤销上一次操作``回到上次编辑的位置dw删除这个单词后面的内容dd删除光标当前行dG删除光标后的全部文字d$删除本行光标后面的内容d0删除本行光标前面的内容y复制当前行,会复制换行符yy复制当前行的内容yyp复制当前行到下一行,此复制不会放到剪切板中nyy复制当前开始的 n 行p,P,.粘贴ddp当前行和下一行互换位置J合并行Ctrl+r重复上一次动作Ctrl+z暂停并退出ZZ保存离开xp交换字符后面的交换到前面~更换当前光标位置的大小写,并光标移动到本行右一个位置,直到无法移动
入门笔记
2022/06/02
21.8K0
为centos添加EPEL Repo
centos默认的源软件不是很全,大部分时候需要添加EPEL源。 centos5.x wget http://dl.fedoraproject.org/pub/epel/5/x86_64/epel-release-5-4.noarch.rpm wget http://rpms.famillecollet.com/enterprise/remi-release-5.rpm sudo rpm -Uvh remi-release-5*.rpm epel-release-5*.rpm centos6.x wget
happy123.me
2018/06/04
5.1K0
Linux-vi和vim
Vi是unix/linux操作系统中最经典的文本编辑器,只能是编辑字符,不能对字体、段落进行排版;它既可以新建文件,也可以编辑文件;它没有菜单,只有命令,且命令繁多,vi适用于文本编辑。 Vim是从 Vi 发展出来的一个文本编辑器,可以看做是 Vi 的增强版本,可以主动的以字体颜色辨别语法的正确性,方便程序设计代码补全、编译及错误跳转等方便编程的功能特别丰富,vim适用于coding。
唔仄lo咚锵
2021/09/14
7.9K0
Linux-vi和vim
编辑器-vi、vim的使用
vi编辑器是Linux和Unix上最基本的文本编辑器,工作在字符模式下。由于不需要图形界面,vi是效率很高的文本编辑器。尽管在Linux上也有很多图形界面的编辑器可用,但vi在系统和服务器管理中的功能是那些图形编辑器所无法比拟的。
狼啸风云
2019/10/28
1.4K0
编辑器-vi、vim的使用
Linux的vi命令用法大全_vim命令和vi的区别
大家好,又见面了,我是你们的朋友全栈君。 linux下使用vi编辑是很方便的,但是具体要怎么做呢?下面由学习啦小编为大家整理了linux下vi的相关命令,希望对大家有帮助! 1.linux vi命令的
全栈程序员站长
2022/11/09
2.7K0
解决:bash: vim: command not found、docker 容器不识别 vi / vim 、docker 容器中安装 vim
3. 同步 /etc/apt/sources.list 和 /etc/apt/sources.list.d 中列出的源的索引,这样才能获取到最新的软件包。
微风-- 轻许--
2022/04/13
1.7K0
解决:bash: vim: command not found、docker 容器不识别 vi / vim 、docker 容器中安装 vim
linux 之 vi,vim 命令
原文链接:https://rumenz.com/rumenbiji/linux-vi-vim.html
入门笔记
2021/10/11
7K0
为vim编辑器添加默认的作者信息
上周五Derek老师分享了精彩的Vim思维导图(回复公众号vim即可查看哦),今天又带来什么呢?继续往下看吧! 很多程序员都想给自己的程序添加一些作者信息之类的信息,那么我们应该怎么实现这个要求呐? 只需要在VIM编辑器中添加以下代码即可! #为F4添加作者信息 map <F4> ms:call TitleDet()<cr>'s function AddTitle() call append(0,"##############################################")
小小科
2018/05/03
6350
《vi和vim》 学习手记(1)
O`Reilly 系列图书,广受好评,我也特地买了其中的几本,望有所收获。 第一部分  基础与高级的vi 行编辑器:ed 或 ex 全屏编辑器:vi 或 emacs UNIX分 商用系统 以及 源代码可用的相似系统。 商用系统包括 Solaris AIX HP-UX 相似系统:gnu/linux    bsd衍生系统 i : 插入 cw 更改字词 vi命令特点: 字母大小写有区别 输入时不会显示在屏幕上 不需要在命令后加上enter键 ZZ 保存成常规unix文件 ls 列出目录中的文件 :w 保存
用户1154259
2018/01/17
7760

相似问题

Nano vs Vim或Vi

10

如何覆盖vi / vim中的行文本?

20

使脚本从vi/vim中执行

20

粘贴vi / vim后的光标位置

40

vim/vi中tabn & tabp的快捷方式

20
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文