okhttp

HSBC面试android工程师归来

谁说我不能喝 提交于 2020-02-29 13:44:34
昨天下午去面试了汇丰的高级android工程师的岗位,问的很仔细,每个非常小的android小知识都问到了,包括java的一些知识。如果没有强厚的功底以及平时对知识的深挖,那么回答这些问题还是比较困难的。 首先进行了英语的面试,英语比较差的同学最好提前一个星期多多练习。准备那些面试中经常会面的问题,比如经典的introduce yourself。再就是问你为什么要离职之类的。 英语面完就是技术的面试了,下面是我面试的一些android相关的知识点,大家可以参考: 1.okhttp的使用,如果遇到几个请求依赖并且异步返回的时候该如何处理 2.app的内存如何优化 3.为什么不用view而用fragment 4.多个文件上传如何处理,主之对并发的处理 5.图片缓存是如何处理的 6.framework中使用了大量的静态变量,这样做有什么好处 7.如何解决多个activity有很多共性的问题,该如何管理 8.如何判断左右滑动和上下滑动的差别 9.java中volidate变量的使用场景 10.im消息是怎么实现的 11.onnewintent是在什么时候使用的 12.onattach是用来处理什么的 13.mvc和mvp的区别 总的来说他们需要一个能动性比较强,以及对新知识点敏锐程度很高的开发工程师。 对我的总结:我觉得小公司和大公司的区别就是,小公司做的东西比较杂比较多

Unexpected char 0x0a in header value when using OkHttp client in Android

假装没事ソ 提交于 2020-02-29 12:00:58
问题 When sending a Base64 encoded string as header using Http, I am getting error response as Unexpected char 0x0a at 28 in header value: I99Uy+HjG5PpEhmi8vZgm0W7KDQ= Usage : String encodedHeader = Base64.encodeToString(value.getBytes(), Base64.DEFAULT); header.put("auth", encodedHeader); 回答1: 0x0a is a newline character which is forbidden in a header. Solution would be to make sure that these characters are stripped off before sending the encoded value as header. Base64.encodeToString

Unexpected char 0x0a in header value when using OkHttp client in Android

僤鯓⒐⒋嵵緔 提交于 2020-02-29 12:00:29
问题 When sending a Base64 encoded string as header using Http, I am getting error response as Unexpected char 0x0a at 28 in header value: I99Uy+HjG5PpEhmi8vZgm0W7KDQ= Usage : String encodedHeader = Base64.encodeToString(value.getBytes(), Base64.DEFAULT); header.put("auth", encodedHeader); 回答1: 0x0a is a newline character which is forbidden in a header. Solution would be to make sure that these characters are stripped off before sending the encoded value as header. Base64.encodeToString

Post请求的两种编码格式:application/x-www-form-urlencoded和multipart/form-data

生来就可爱ヽ(ⅴ<●) 提交于 2020-02-28 11:23:26
在常见业务开发中,POST请求常常在这些地方使用:前端表单提交时、调用接口代码时和使用Postman测试接口时。我们下面来一一了解: 一、前端表单提交时 application/x-www-form-urlencoded 表单代码: < form action = " http://localhost:8888/task/ " method = " POST " > First name: < input type = " text " name = " firstName " value = " Mickey& " > < br > Last name: < input type = " text " name = " lastName " value = " Mouse " > < br > < input type = " submit " value = " 提交 " > </ form > 通过测试发现可以正常访问接口,在Chrome的开发者工具中可以看出,表单上传编码格式为 application/x-www-form-urlencoded (Request Headers中),参数的格式为 key=value&key=value 。 image.png 我们可以看出,服务器知道参数用符号 & 间隔,如果参数值中需要 & ,则必须对其进行编码。编码格式就是

Android MVP 快速开发框架ZBLibrary

别来无恙 提交于 2020-02-27 21:21:48
MVP 架构,提供一套开发标准(View,Data,Event)以及模板和工具类并规范代码。封装层级少,简单高效兼容性好。 OKHttp、UIL图片加载、ZXing二维码、沉浸状态栏、下载安装、自动缓存以及各种Base、Demo、UI、Util直接用。 全新的手势,侧滑返回、全局右滑返回都OUT啦! 用 BaseView ,自定义View竟然如此简单; 用 Entry<K, V> ,两个变量的Model/JavaBean再也不用写了; 用 BaseHttpListActivity ,几行代码搞定http请求列表 加载和缓存; 还有100多个常用 style ,一行搞定View属性,一键统一配置UI... 点击右边链接查看如何使用 http://my.oschina.net/u/2437072/blog/665241 [以下Gif图看起来比较卡,实际在手机上App运行很流畅] ZBLibraryDemoApp APIJSONApp 下载试用 ZBLibraryDemoApp.apk(ZBLibrary) APIJSONApp.apk(APIJSON+ZBLibrary) 感谢开源 Glide Google官方推荐的一个强大易用的图片加载库。 OKHttp 很火很强大的Http/Https传输框架。ZBLibrary中的HttpManager对它做了封装(支持自签名Https)

Spring Boot(八):Okhttp实现GitHub第三方登录

北城以北 提交于 2020-02-27 12:24:36
最近一直在学习springboot,刚刚看完雷丰阳老师讲的springboot基础、整合视频,相见恨晚的赶脚,顺理成章的看了尚硅谷的springboot谷粒商城项目视频,但是,有种说不出的感觉,看了16节,还是放弃了,在bilibili上又搜索了一番,找到了现在学习的这个视频,码匠社区项目,看了几节,感觉还可以,项目中用到了GitHub第三方登录,第一次接触,感觉挺好用的,自然要写篇博客记录一下啦。 一、基本概念 OkHTTP:HTTP是现代应用程序网络的方式,也就是我们交换数据和媒体的方式,有效地执行HTTP可使您的内容加载更快更节省带宽。 1、OkHTTP是默认情况下有效的HTTP客户端: (1)HTTP/2支持允许对同一主机的所有请求共享一个套接字。 (2)连接池可减少请求延迟 (3)透明的GZIP缩小了下载大小 (4)响应缓存可以完全避免网络重复请求 2、GitHub OAuth APP:OAuth是一种授权机制,数据的所有者告诉系统,同一授权第三方应用进入系统,获取这些数据。系统从而产生一个短期的进入令牌token,用来代替密码,供第三方使用。 二、API https://developer.github.com/apps/building-oauth-apps/authorizing-oauth-apps/ 三、OkHTTP实现GitHub第三方登录 四、Maven

android+spring boot 选择,上传,下载文件

前提是你 提交于 2020-02-26 18:03:52
1 概述 前端android,上传与下载文件,使用OkHttp处理请求,后端使用spring boot+MVC,处理android发送来的上传与下载请求.这个其实不难,就是特别多奇奇怪怪的坑,因此,希望看到的,不要像笔者这样踩的那么痛苦了... 2 环境 win10 Spring Boot 2.2.2 RELEASE IDEA 2019.3.1 Android Studio 3.6RC1 Tomcat 9.0.30 3 android 3.1 准备工作 3.1.1 新建工程 这次用一个全新的例子写博客,因此从新建工程开始: 3.1.2 AndroidManifest.xml 加入 <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/> <uses-permission

Intro to Feign

依然范特西╮ 提交于 2020-02-26 11:15:50
1. Overview In this tutorial, we will introduce and explain Feign , a declarative HTTP client developed by Netflix. Feign aims at simplifying HTTP API clients. Simply put, the developer needs only to declare and annotate an interface while the actual implementation will be provisioned at runtime. 2. Example We will present an example of a bookstore service REST API , that is queried and tested based on the Feign HTTP client. Before we build a sample Feign client, we'll add the needed dependencies and startup the REST service. The bookstore service example can be cloned from here . After

掌握 Spring 之 RestTemplate

我与影子孤独终老i 提交于 2020-02-25 16:41:48
掌握 Spring 之 RestTemplate 闻人的技术博客 关注 2 2019.05.11 15:56:51 字数 2,787 阅读 1,094 前言 在 Java 服务端开发领域里,Spring 是绕不开的话题,尤其是现在微服务概念盛行,Spring Boot 的出现更是给 Spring 注入了新的活力,除此之外还有 Spring Cloud,这些框架让 Spring 技术体系更加丰富。Spring 从 2014 年的 1.0.0 版本迭代到 现在的 5.2.0 M1 版本,紧随着 Java 语言发展,不断引入新的特性和功能。本文关注的是 Spring 框架中 RestTemplate 内容,可以减少我们平时开发常使用的 HttpClient API 依赖。文章所涉及的示例 Demo 详见Github 地址: Resttemplate demo 。感谢小七同学的认真校对,如果有任何技术问题或者文章纰漏,欢迎留言联系,一起交流探讨 😁。 认识 RestTemplate 首先在我们学习使用 RestTemplate 之前,先认识下这个类,来看 Spring 官方怎么描述的。 从官方 API 文档 RestTemplate javadoc 可以找该类的描述如下: Synchronous client to perform HTTP requests, exposing a

How to add Api_KEY into interceptor using okhttp

让人想犯罪 __ 提交于 2020-02-24 06:56:24
问题 I have this service where I want to put the token as an interception in the okhttp instead of passing as a parameter with @Header("MY_API_KEY") This is my code regarding the service /** * Provides the [PHService] */ fun provideService(): PHService { val logger = HttpLoggingInterceptor() logger.level = HttpLoggingInterceptor.Level.BASIC val client = OkHttpClient.Builder() .addInterceptor(logger) .build() return Retrofit.Builder() .baseUrl(BuildConfig.API_URL) .client(client)