httpclient

我在 IntelliJ IDEA 中必有得插件和配置

孤者浪人 提交于 2020-05-07 12:47:28
| 好看请赞,养成习惯 你有一个思想,我有一个思想,我们交换后,一个人就有两个思想 If you can NOT explain it simply, you do NOT understand it well enough 现陆续将Demo代码和技术文章整理在一起 Github实践精选 ,方便大家阅读查看,本文同样收录在此,觉得不错,还请Star 最近在陆续写 Java 并发编程系列 ,好多朋私信问我的不是并发内容本身,而是我的 IDEA 主题配置。我就姑且认为好的主题配置可以写出更好的并发程序吧 即便这种可能性只有万分之一,我也要把我的 IDEA 相关值得配置的内容/插件和大家分享出来(其实我还是很乐意将我的一些配置分享出来帮助大家更加高效的coding)) 先来一张我的 IDE 截图,有你看中的地方吗? 插件篇 好用的插件总是让人: 神清气爽,精神抖擞 ,丰神异彩,炯炯有神,神采奕奕,气贯长虹 ,英姿飒爽,精神焕发 下面所有插件都可以按照文中标注的名称在 IDEA 插件市场中直接搜索并安装 Material Theme UI Material Theme UI 在主题下载量排行榜中高居第一。安装主题后(在页面底部就会有进入主题的快捷入口),选择自己喜欢的主题进行微调就可以啦,如果懒得做配置,按照下图勾选相应设置就和我的一样了: Rainbow Brackets 翻译过来叫

Thinkphp中无法获取用户真实IP

血红的双手。 提交于 2020-05-06 10:15:56
TP6中无法获取到用户真实的IP,无法穿透代理,以下分享一个自用的获取IP的代码,估计TP5中存在同样的问题。 ** * 获得用户的真实IP地址 * * @access public * @return string */ function real_ip() { static $realip = NULL; if ($realip !== NULL) { return $realip; } if (isset($_SERVER)) { if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) { $arr = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']); /* 取X-Forwarded-For中第一个非unknown的有效IP字符串 */ foreach ($arr AS $ip) { $ip = trim($ip); if ($ip != 'unknown') { $realip = $ip; break; } } } elseif (isset($_SERVER['HTTP_CLIENT_IP'])) { $realip = $_SERVER['HTTP_CLIENT_IP']; } else { if (isset($_SERVER['REMOTE_ADDR'])) { $realip = $

我在 IntelliJ IDEA 中必有得插件和配置

江枫思渺然 提交于 2020-05-06 10:04:57
| 好看请赞,养成习惯 你有一个思想,我有一个思想,我们交换后,一个人就有两个思想 If you can NOT explain it simply, you do NOT understand it well enough 现陆续将Demo代码和技术文章整理在一起 Github实践精选 ,方便大家阅读查看,本文同样收录在此,觉得不错,还请Star 最近在陆续写 Java 并发编程系列 ,好多朋私信问我的不是并发内容本身,而是我的 IDEA 主题配置。我就姑且认为好的主题配置可以写出更好的并发程序吧 即便这种可能性只有万分之一,我也要把我的 IDEA 相关值得配置的内容/插件和大家分享出来(其实我还是很乐意将我的一些配置分享出来帮助大家更加高效的coding)) 先来一张我的 IDE 截图,有你看中的地方吗? 插件篇 好用的插件总是让人: 神清气爽,精神抖擞 ,丰神异彩,炯炯有神,神采奕奕,气贯长虹 ,英姿飒爽,精神焕发 下面所有插件都可以按照文中标注的名称在 IDEA 插件市场中直接搜索并安装 Material Theme UI Material Theme UI 在主题下载量排行榜中高居第一。安装主题后(在页面底部就会有进入主题的快捷入口),选择自己喜欢的主题进行微调就可以啦,如果懒得做配置,按照下图勾选相应设置就和我的一样了: Rainbow Brackets 翻译过来叫

原创 记录一次线上Mysql慢查询问题排查过程

空扰寡人 提交于 2020-05-06 09:51:37
背景 前段时间收到运维反馈,线上Mysql数据库凌晨时候出现慢查询的报警,并把原始sql发了过来: --去除了业务含义的sql update test_user set a=1 where id=1; 表数据量200W左右,不是很大,而且是根据主键更新。 问题排查 排查Mysql数据库 我看到sql后第一反应就是是不是数据库出问题了,每个小时都有业务,偏偏白天业务高峰时间段正常,凌晨业务量很少时候出问题,让运维先检查了数据库的状态,反馈是数据库正常。 排查业务代码(第一次) 这块业务代码比较复杂,而且是别人写的,第一次看都没看完,直接在代码里打印了各个模块执行的时间,然后上线。 排查业务代码(第二次) 第二天又出现慢查询了,我赶紧下载了线上日志,发现整个方法执行时间很长,然后发现执行时间长的代码有几行调用其他服务的代码,使用的是HttpClient,猜到了原因,应该是调用其他超时导致的。 说下系统整体流程,微信(A)回调我们的收银台服务(B),收银台更新订单信息并调用业务服务(C)。 出问题原因是: 第一次A调用B,B锁住记录行并调用C,这个时候C没有响应,导致A又发送了第二次请求。 第二次A调用B,B更新记录时候发生死锁,出现慢查询。 解决方案 收银台系统B接收回调的方法添加分布式锁,保证同一时刻同一订单只能更新一次。 收银台调用业务服务使用的是HttpClient4.4

【C#】使用OWIN创建Web API

本小妞迷上赌 提交于 2020-05-06 01:22:13
OWIN的介绍  OWIN 的全称是 "Open Web Interface for .NET", OWIN 在 .NET Web 服务器和 .NET Web 应用之间定义了一套标准的接口, 其目的是为了实现服务器与应用之间的解耦,使得便携式 .NET Web 应用以及跨平台的愿望成为现实, 标准的 OWIN 应用可以在任何 OWIN 兼容的服务器上运行, 不再依赖于Windows和IIS 。 OWIN的使用 创建项目 向项目中添加 Microsoft.AspNet.WebApi.Owin 和 Microsoft.AspNet.WebApi.Owin Self Host包 (Self Host 用于开启OWIN Host,设置监听接受Http请求) 添加Startup类 Startup是OWIN约定的,用于对OWIN做相关配置的,代码如下: using Owin; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Web.Http; namespace OwinTest { public class Startup { public void Configuration

http请求工具-OkHttp用法

十年热恋 提交于 2020-05-05 18:03:45
OKHttp介绍 okhttp是一个第三方类库,用于android中请求网络。这是一个开源项目,是安卓端最火热的轻量级框架,由移动支付Square公司贡献(该公司还贡献了Picasso和LeakCanary) 。用于替代HttpUrlConnection和Apache HttpClient(android API23 里已移除HttpClient)。 okhttp有自己的官网,官网网址: OKHttp官网 如果想了解原码可以在github上下载,地址是: https://github.com/square/okhttp 在AndroidStudio中使用不需要下载jar包,直接添加依赖即可: compile ‘com.squareup.okhttp3:okhttp:3.4.1’ 在开发中我们会经常需要用到http请求,这里简单介绍一个http请求工具okHttp的用法 1、导入jar包 1 <dependency> 2 <groupId>com.squareup.okhttp3</groupId> 3 <artifactId>okhttp</artifactId> 4 <version>3.9.1</version> 5 </dependency> 2、为了便于以后使用,这里封装一个OkHttpUtil的工具类 get请求 1 /** 2 * get请求 3 * @param

安卓开发常用网络请求框架OkHttp、Volley、XUtils、Retrofit对比

杀马特。学长 韩版系。学妹 提交于 2020-05-05 18:02:37
网络请求框架总结 1.xutils 此框架庞大而周全,这个框架可以网络请求,同时可以图片加载,又可以数据存储,又可以 View 注解,使用这种框架很方便,这样会使得你整个项目对它依赖性太强,万一以后这个库不维护了,或者中间某个模块出问题了,这个影响非常大,所以在项目开发时,一般会更喜欢选择专注某一领域的框架。 2.OkHttp Android 开发中是可以直接使用现成的api进行网络请求的,就是使用HttpClient、HttpUrlConnection 进行操作,目前HttpClient 已经被废弃,而 android-async-http 是基于HttpClient的,可能也是因为这个原因作者放弃维护。 而OkHttp是Square公司开源的针对Java和Android程序,封装的一个高性能http请求库,它的职责跟HttpUrlConnection 是一样的,支持 spdy、http 2.0、websocket ,支持同步、异步,而且 OkHttp 又封装了线程池,封装了数据转换,封装了参数使用、错误处理等,api使用起来更加方便。可以把它理解成是一个封装之后的类似HttpUrlConnection的东西,但是在使用的时候仍然需要自己再做一层封装,这样才能像使用一个框架一样更加顺手。 3.Volley Volley是Google官方出的一套小而巧的异步请求库

Android 开源框架 ( 一 ) OkHttp 网络框架的基本使用

帅比萌擦擦* 提交于 2020-05-05 17:36:46
HttpClient 和 HttpURLConnection 以及 OkHttp :   在Android 2.2版本之前,HttpClient拥有较少的bug,因此使用它是最好的选择。 而在Android2.3版本及以后,HttpURLConnection则是最佳的选择。它的API简单,体积较小,因而非常适用于Android项目。压缩和缓存机制可以有效地减少网络访问的流量,在提升速度和省电方面也起到了较大的作用。对于新的应用程序应该更加偏向于使用HttpURLConnection,因为在以后的工作当中我们也会将更多的时间放在优化HttpURLConnection上面。 其实现在嘛,两者都不用,就用Okhttp. HttpUrlConnection现在的底层实现就是通过Okhttp. 一. HttpUrlConnect 介绍   1. 网络通信首先需要配置网络请求权限: <uses-permission android:name= " android.permission.INTERNET " />   2.使用如下方式实现子线程里http请求通信:   开启线程两种常用的实现方式:一种是继承Thread类.一种是实现Runnable接口. new Thread( new Runnable() { @Override public void run() { ... //

Android 网络编程之最新OKHTTP:3.9.0

泄露秘密 提交于 2020-05-05 16:23:12
本节前言 本来是想围绕着HttpClient讲解的,后来发先Android4.4之后okhttp代替了hc,所以将不再讲解hc okhttp的简单使用,主要包含: 一般的get请求 一般的post请求 基于Http的文件上传 文件下载 加载图片 支持请求回调,直接返回对象、对象集合 支持session的保持 使用okhttp 使用okhttp前首先要添加依赖 compile 'com.squareup.okhttp3:okhttp:3.9.0' 一般的get请求 对了网络加载库,那么最常见的肯定就是http get请求了,比如获取一个网页的内容 OkHttpClient client = new OkHttpClient(); Request request = new Request.Builder() .url(url) .build(); Response response = client.newCall(request).execute(); String string = response.body().string(); System.out.println(string); } 运行结果 以上就是发送一个get请求的步骤,首先构造一个Request对象,参数最起码有个url,当然你可以通过Request.Builder设置更多的参数比如:header、method等

使用OWIN自托管开发ASP.NET Web API的系列

狂风中的少年 提交于 2020-05-05 15:35:05
本教程说明如何使用OWIN自托管Web API框架,在控制台应用程序中托管ASP.NET Web API。 .NET开放Web界面 (OWIN)定义了.NET Web服务器和Web应用程序之间的抽象。 OWIN将Web应用程序与服务器分离,这使OWIN成为在IIS之外以自己的进程自托管Web应用程序的理想选择。 本教程中使用的软件版本 Visual Studio 2017 Web API 5.2.7 注意 您可以在 github.com/aspnet/samples中 找到本教程的完整源代码 。 创建一个控制台应用程序 在 文件 菜单上, 新建 ,然后选择 项目 。 在“ 已安装 ”的 Visual C#下 ,选择“ Windows桌面” ,然后选择“ 控制台应用程序(.Net Framework)” 。 将项目命名为“ OwinSelfhostSample”,然后选择“ 确定” 。 添加Web API和OWIN包 从“ 工具” 菜单中,选择“ NuGet软件包管理器” ,然后选择“ 软件包管理器控制台” 。 在“程序包管理器控制台”窗口中,输入以下命令: Install-Package Microsoft.AspNet.WebApi.OwinSelfHost 这将安装WebAPI OWIN自托管软件包和所有必需的OWIN软件包。 配置Web API以进行自我托管