Scala Http请求工具类
import java.io.IOException
import java.util
import org.apache.http.client.ClientProtocolException
import org.apache.http.client.entity.UrlEncodedFormEntity
import org.apache.http.client.methods.{HttpGet, HttpPost}
import org.apache.http.impl.client.{DefaultHttpClient, HttpClients}
import org.apache.http.message.BasicNameValuePair
import org.apache.http.util.EntityUtils
import org.slf4j.LoggerFactory
import scala.collection.JavaConversions._
import scala.reflect.macros.ParseException
object HttpClientUtils {
val logger = LoggerFactory.getLogger("out")
def get(url: String): String = {
val httpclient = new DefaultHttpClient()
try {
// 创建httpget.
val httpget = new HttpGet(url)
// 执行get请求.
val response = httpclient.execute(httpget)
try {
// 获取响应实体
val entity = response.getEntity()
EntityUtils.toString(entity, "utf-8")
} finally {
response.close()
}
} catch {
case ex: ClientProtocolException => {logger.error(ex.getMessage);null}
case ex: ParseException => {logger.error(ex.getMessage);null}
case ex: IOException => {logger.error(ex.getMessage);null}
} finally {
// 关闭连接,释放资源
httpclient.close()
}
}
def post(url: String, map: Map[String,String]): String = {
//创建httpclient对象
val client = HttpClients.createDefault
try {
//创建post方式请求对象
val httpPost = new HttpPost(url)
//装填参数
val nvps:util.ArrayList[BasicNameValuePair] = new util.ArrayList[BasicNameValuePair]
if (map != null) {
for (entry <- map.entrySet) {
nvps.add(new BasicNameValuePair(entry.getKey, entry.getValue))
}
}
//设置参数到请求对象中
httpPost.setEntity(new UrlEncodedFormEntity(nvps, "UTF-8"))
//执行请求操作,并拿到结果(同步阻塞)
val response = client.execute(httpPost)
//获取结果实体
val entity = response.getEntity
var body = ""
if (entity != null) { //按指定编码转换结果实体为String类型
body = EntityUtils.toString(entity, "UTF-8")
}
//释放链接
response.close()
body
} finally {
client.close()
}
}
}
Scala Http请求工具类的更多相关文章
- HttpClientUtils:Http请求工具类
HttpClientUtils:Http请求工具类 Scala:HttpClientUtils Scala:HttpClientUtils import java.io.IOException imp ...
- WebUtils-网络请求工具类
网络请求工具类,大幅代码借鉴aplipay. using System; using System.Collections.Generic; using System.IO; using System ...
- Http、Https请求工具类
最近在做微信开发,使用http调用第三方服务API,有些是需要https协议,通过资料和自己编码,写了个支持http和https的工具类,经验证可用,现贴出来保留,也供需要的人使用(有不足的地方,也请 ...
- 微信https请求工具类
工作中用到的微信https请求工具类. package com.gxgrh.wechat.tools; import com.gxgrh.wechat.wechatapi.service.System ...
- HTTP请求工具类
HTTP请求工具类,适用于微信服务器请求,可以自测 代码; /// <summary> /// HTTP请求工具类 /// </summary> public class Ht ...
- 实现一个简单的http请求工具类
OC自带的http请求用起来不直观,asihttprequest库又太大了,依赖也多,下面实现一个简单的http请求工具类 四个文件源码大致如下,还有优化空间 MYHttpRequest.h(类定义, ...
- 远程Get,Post请求工具类
1.远程请求工具类 import java.io.*; import java.net.URL; import java.net.URLConnection; import java.util.L ...
- C#实现的UDP收发请求工具类实例
本文实例讲述了C#实现的UDP收发请求工具类.分享给大家供大家参考,具体如下: 初始化: ListeningPort = int.Parse(ConfigurationManager.AppSetti ...
- ajax请求工具类
ajax的get和post请求工具类: /** * 公共方法类 * * 使用 变量名=function()定义函数时,如果在变量名前加var,则这个变量变成局部变量 */var Common = ...
- 【原创】标准HTTP请求工具类
以下是个人在项目开发过程中,总结的Http请求工具类,主要包括四种: 1.处理http POST请求[XML格式.无解压]: 2.处理http GET请求[XML格式.无解压]: 3.处理http P ...
随机推荐
- 全面掌握胶囊网络:从基础理论到PyTorch实战
本文全面深入地探讨了胶囊网络(Capsule Networks)的原理.构建块.数学模型以及在PyTorch中的实现.通过本文,读者不仅能够理解胶囊网络的基础概念和高级数学原理,还能掌握其在实际问题中 ...
- 为React Ant-Design Table增加字段设置
最近做的几个项目经常遇到这样的需求,要在表格上增加一个自定义表格字段设置的功能.就是用户可以自己控制那些列需要展示. 在几个项目里都实现了一遍,每个项目的需求又都有点儿不一样,迭代了很多版,所以抽时间 ...
- CF1592C. Bakry and Partitioning
原题链接:CF1592C. Bakry and Partitioning 题意: 给定一个\(n\)个点,\(n - 1\)条边的树,并且每个点都有权值\(w_i\),让你最少割掉一条边最多割掉\(k ...
- Unit_ptr数据类型的理解
1.相关代码理解 在看代码时,发现有用到 SOCKET 我去找它们的定义,发现有如下定义: typedef UINT_PTR SOCKET 又去看UINT_PTR,LONG_PTR, LONG_PT ...
- Linux下通过AnySetup配置防火墙
软件 AnySetup 主要功能 主要功能是对Linux操作系统下的基本配置进行管理.多种服务配置进行管理.安全配置进行管理等.如:操作系统的升级管理,软件包的安装.更新和卸载管理,软件仓库源的管理, ...
- Cplex学术版申请及Python API环境配置
当使用Cplex时弹出下面错误: CPLEX Error 1016: Community Edition. Problem size limits exceeded. Purchase at http ...
- IP的电源管脚
IP的电源管脚是个特殊的存在. 1.对于前度RTL集成,需要和IP vendor以及后端确认,集成与综合时是否需要将电源DVDD,AVDD,引出到top层. 2.绝大部分情况下IP的电源PIN是sup ...
- [ABC261B] Tournament Result
Problem Statement $N$ players played a round-robin tournament. You are given an $N$-by-$N$ table $A$ ...
- 项目实战接口开发SpringBoot
目录 一.springboot官方demo开发 二.使用SpringBoot开发get方法接口 三.一个要求携带cookie信息访问的get接口开发 四.需要携带参数的get请求两种开发方式 4.1 ...
- MySQL运维11-Mycat分库分表之应用指定分片
一.应用指定分片 此规则是在运行阶段有应用自主决定路由到那个分片,根据提供的字段,然后按照指定的规则,截取该字段的部分子字符串当做分片的依据,该分别方法比较灵活,适用于某个字段有几个特殊的字符串拼接而 ...