httpclient

通过接口调取博客园文章的实现

泪湿孤枕 提交于 2020-04-28 16:13:27
通过接口调取博客园文章的实现 注册了个域名(Nineksy.cn),在阿里云申请了个云虚主机。今天域名备案通过了,准备给网站做几个个页面,因为博客园用的很顺手了就不准备自己内容管理了,准备直接调用博客园的内容。由于阿里云的云虚主机不支持.net core, 但支持.NET Framework,就用.NET MVC 来做。 一、博客园的接口 博客园 开发者中心 支持对博客园的各种管理api,返回json格式,不过使用这种接口要申请ApiKey,这是只是简单调用一下博客列表和内容,所以使用另一个简单的方式http://wcf.open.cnblogs.com/blog/help,这个api较少(如下图),只是调取一下博客内容页足够了。这里使用的是.net 4.5 MVC项目进行调用。 二、创建网站 打开VS2019,【文件】->【新建】->【项目】。 在创建新项目对话框中选择【ASP.NET Web 应用程序(.NET Framework)】,【下一步】。 选择创建项目 在配置新项目对话框中对项目进行配置。项目名称输入“NineskyWeb”;位置是项目源代码保存的位置,可以随便选;解决方案名称这里与项目名称一致。框架选择“.NET Framework4.5”,因为云虚主机只支持到4.5。点【创建】。 在创建新的ASP.NET Web应用程序里面选择“MVC”。点击【创建】

接口测试 总结(什么是接口测试)

梦想的初衷 提交于 2020-04-28 09:30:40
本文转载至:https://blog.csdn.net/u014767496/article/details/70156423 本文主要分为两个部分:   第一部分:主要从问题出发,引入接口 测试 的相关内容并与前端测试进行简单对比,总结两者之前的区别与联系。但该部分只交代了怎么做和如何做?并没有解释为什么要做?   第 二部分:主要介绍为什么要做接口测试,并简单总结接口持续集成和接口质量评估相关内容。 第一部分: 首先,在做接口测试的过程中,经常有后端开发会问: 后端接口都测试什么?怎么测的? 后端接口测试一遍 ,前端也测试一遍,是不是重复测试了? 于是,为了向开发解释上述问题,普及基本的测试常识,特意梳理了接口测试的相关内容以及其与前端测试的区别,使开发团队与测试团队在测试这件上达成基本的共识,提高团队协作效率,从而更好的保证产品质量。 然后,我们试着回答上面的问题: 问题1.1、后端接口都测试什么?   --回答这个问题,我们可以从接口测试活动内容的角度下手,看一下面这张图,基本反应了当前我们项目后端接口测试的主要内容: 问题1.2、我们怎么做接口测试?   --由于我们项目前后端调用主要是基于http协议的接口,所以测试接口时主要是通过工具或代码模拟http请求的发送与接收。工具有很多如:postman、jmeter、soupUI、 Java +httpclient

接口测试总结-含接口测试和前端测试的区别与比较

懵懂的女人 提交于 2020-04-28 09:30:20
本文主要分为两个部分:   第一部分:主要从问题出发,引入接口测试的相关内容并与前端测试进行简单对比,总结两者之前的区别与联系。但该部分只交代了怎么做和如何做?并没有解释为什么要做?   第 二部分:主要介绍为什么要做接口测试,并简单总结接口持续集成和接口质量评估相关内容。 第一部分: 首先,在做接口测试的过程中,经常有后端开发会问: 后端接口都测试什么?怎么测的? 后端接口测试一遍 ,前端也测试一遍,是不是重复测试了? 于是,为了向开发解释上述问题,普及基本的测试常识,特意梳理了接口测试的相关内容以及其与前端测试的区别,使开发团队与测试团队在测试这件上达成基本的共识,提高团队协作效率,从而更好的保证产品质量。 然后,我们试着回答上面的问题: 问题1.1、后端接口都测试什么?   --回答这个问题,我们可以从接口测试活动内容的角度下手,看一下面这张图,基本反应了当前我们项目后端接口测试的主要内容: 问题1.2、我们怎么做接口测试?   --由于我们项目前后端调用主要是基于http协议的接口,所以测试接口时主要是通过工具或代码模拟http请求的发送与接收。工具有很多如:postman、 jmeter 、soupUI、java+httpclient、robotframework+httplibrary等。 问题2、后端接口测试一遍 ,前端也测试一遍,是不是重复测试了?   -

python用httplib模块发送get和post请求***

ε祈祈猫儿з 提交于 2020-04-27 21:22:24
在python中,模拟http客户端发送get和post请求,主要用httplib模块的功能。 1、python发送GET请求 我在本地建立一个测试环境,python.php的内容就是输出一句话: <? php echo ' python httplib study! ' .PHP_EOL; var_dump($_POST); ?> python发送get请求代码: import httplib httpClient = None try : httpClient = httplib.HTTPConnection( ' localhost ' , 80 , timeout= 10 ) httpClient.request( ' GET ' , ' /python.php ' ) # response是HTTPResponse对象 response = httpClient.getresponse() print response.status print response.reason print response.read() except Exception, e: print e finally : if httpClient: httpClient.close() 上面代码中使用了finally来保证即使出错的时候也能关闭httpClient。运行这个程序

如何使用Jsoup爬取网页内容

别说谁变了你拦得住时间么 提交于 2020-04-26 14:05:22
前言: 这是一篇迟到很久的文章了,人真的是越来越懒,前一阵用jsoup实现了一个功能,个人觉得和selenium的webdriver原理类似,所以今天正好有时间,就又来更新分享了。 实现场景: 爬取博客园 https://www.cnblogs.com/longronglang ,文章列表中标题、链接、发布时间及阅读量 思路: 1、引入jar包 2、通过httpclient,设置参数,代理,建立连接,获取HTML文档(响应信息) 3、将获取的响应信息,转换成HTML文档为Document对象 4、使用jQuery定位方式,这块就和web自动化一样了定位获取文本及相关属性 相关详细使用参考官网: https://jsoup.org/ 实现: 1、引入依赖 < dependency > < groupId > org.jsoup </ groupId > < artifactId > jsoup </ artifactId > < version > 1.10.3 </ version > </ dependency > < dependency > < groupId > commons-httpclient </ groupId > < artifactId > commons-httpclient </ artifactId > < version > 3.1 </

ASP.NET Core 2.1 中的 HttpClientFactory (Part 4) 整合Polly实现瞬时故障处理

做~自己de王妃 提交于 2020-04-26 12:23:49
原文:https://www.stevejgordon.co.uk/httpclientfactory-using-polly-for-transient-fault-handling 发表于:2018年6月 在本系列的上一篇文章中,我介绍了使用命名和类型客户端注册的DelegatingHandlers的传出中间件的概念。尽管可以使用该方法,但ASP.NET团队希望在大多数情况下,我们无需手动构建自己的处理程序。在某些情况下,库的内置功能可能会提供我们需要的功能。例如,有时将请求包装在时序代码中以跟踪它们执行所需的时间有时会很有用。现在,它已作为默认日志记录的一部分内置到IHttpClientFactory中。在其他情况下,第三方集成可能会提供您所需的功能。例如,基于横切面的思想,在HTTP请求期间处理瞬态故障。在这种情况下,与其制作自己的重试逻辑,不如使用Polly之类的库。 Polly是一个流行的瞬态故障处理库,它提供了一种机制来定义在发生某些故障时可以应用的策略。重试策略是最常用的策略之一。您可以封装一些代码,如果发生故障,将重试这些代码,有时需要多次重试。这在您的应用程序需要与外部服务进行通信的情况下非常有用。通过HTTP之类的传输工具与服务进行通信时,始终存在瞬态故障的风险。暂时性故障可能会阻止您的请求完成,但也可能是暂时的问题。在这种情况下,使用重试是明智的选择。

ASP.NET Core 2.1 中的 HttpClientFactory (Part 4) 整合Polly实现瞬时故障处理

早过忘川 提交于 2020-04-26 11:37:20
原文:https://www.stevejgordon.co.uk/httpclientfactory-using-polly-for-transient-fault-handling 发表于:2018年6月 在本系列的上一篇文章中,我介绍了使用命名和类型客户端注册的DelegatingHandlers的传出中间件的概念。尽管可以使用该方法,但ASP.NET团队希望在大多数情况下,我们无需手动构建自己的处理程序。在某些情况下,库的内置功能可能会提供我们需要的功能。例如,有时将请求包装在时序代码中以跟踪它们执行所需的时间有时会很有用。现在,它已作为默认日志记录的一部分内置到IHttpClientFactory中。在其他情况下,第三方集成可能会提供您所需的功能。例如,基于横切面的思想,在HTTP请求期间处理瞬态故障。在这种情况下,与其制作自己的重试逻辑,不如使用Polly之类的库。 Polly是一个流行的瞬态故障处理库,它提供了一种机制来定义在发生某些故障时可以应用的策略。重试策略是最常用的策略之一。您可以封装一些代码,如果发生故障,将重试这些代码,有时需要多次重试。这在您的应用程序需要与外部服务进行通信的情况下非常有用。通过HTTP之类的传输工具与服务进行通信时,始终存在瞬态故障的风险。暂时性故障可能会阻止您的请求完成,但也可能是暂时的问题。在这种情况下,使用重试是明智的选择。

spring cloud 声明式rest客户端feign调用远程http服务

随声附和 提交于 2020-04-25 13:31:00
在Spring Cloud Netflix栈中,各个微服务都是以HTTP接口的形式暴露自身服务的,因此在调用远程服务时就必须使用HTTP客户端。Feign就是Spring Cloud提供的一种声明式REST客户端。可以通过Feign访问调用远端微服务提供的REST接口。现在我们就用Feign来调用SERVICE-HELLOWORLD暴露的REST接口,以获取到“Hello World”信息。在使用Feign时,Spring Cloud集成了Ribbon和Eureka来提供HTTP客户端的负载均衡。 下面我们就采用Feign的方式来调用服务集群。 1. 创建Maven工程,加入spring-cloud-starter-feign依赖 < dependency > < groupId > org.springframework.cloud </ groupId > < artifactId > spring-cloud-starter-feign </ artifactId > </ dependency > 完整的pom.xml < project xmlns ="http://maven.apache.org/POM/4.0.0" xmlns:xsi ="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation =

JAVA获取微信小程序openid和获取公众号openid,以及通过openid获取用户信息

江枫思渺然 提交于 2020-04-25 02:16:36
https://www.cnblogs.com/lxwt/p/10154540.html?tdsourcetag=s_pcqq_aiomsg 一,首先说明下这个微信的openid   为了识别用户,每个用户针对每个公众号会产生一个安全的OpenID,如果需要在多公众号、移动应用之间做用户共通,则需前往微信开放平台,将这些公众号和应用绑定到一个开放平台账号下,绑定后,一个用户虽然对多个公众号和应用有多个不同的OpenID,但他对所有这些同一开放平台账号下的公众号和应用,只有一个UnionID 我用简单自己理解的话来说就是 这个 你在每个公众号 或者小程序 都是在这个小程序或者这个公众号下会有一个openid 你去别的公众号 或者 小程序 这个是会改变的 但是unionid是不管你在哪个小程序或者公众号是唯一不变的。 微信官方提供了 了一个 可以通过用户的openid来获取用户信息,前提是用户必须关注了你的公众号,这个好像要做的话需要关联一个需要三百块钱认证的那个啥来着。这个就先不说了吧,现在我们要说的问题是如何获取openid 二,小程序获取openid 1 /** 2 * 微信小程序获取openid 3 * @author Mr.Lin 4 */ 5 public class GetOpenIDUtil { 6 // 网页授权接口 7 // public final static

远程服务异常处理的实践之一:客户端

送分小仙女□ 提交于 2020-04-24 20:29:22
[TOC] 随着纯单体项目的逐渐减少,远程服务调用失败变得十分常见。由于 HTTP 协议的开放性,远程服务调用异常的复杂度在增长。 HTTP 状态码 HTTP 状态码是描述响应的重要信息,参考 List of HTTP status codes 。 1XX 未被定义在 HTTP/1.0 协议中; 2XX 表示请求已成功被服务器接收、理解、并接受; 3XX 表示需要客户端采取进一步的操作才能完成请求; 4XX 表示客户端看起来可能发生了错误,妨碍了服务器的处理; 5XX 表示服务器在处理请求的过程中有错误或者异常状态发生; 3XX 响应不在本文讨论之列 服务端各不相同 HTTP 状态码目前集中于 1XX 到 5XX 区间,这形成以下事实: REST 风格接口往往使用 200、400、500 描述响应,部分版本的 ASPNET Core 中将暴露的路由所在方式定义为 void 可以观察到 204 状态码(使用 IActionResult 则可以进行更精确的控制)。 在实践中,各厂商的策略也千差万别: 友盟和又拍云接口的 HTTP 状态码集中在 200 和 400 上,配合四位业务意义上的状态码表达响应,参考 友盟 - U-Push API集成文档 - 附录I 接口调用错误码 又拍云 - 图片处理 - 状态码表 微信支付相关接口文档未声明 HTTP 状态码的意义,相反它定义了以