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请求工具类的更多相关文章

  1. HttpClientUtils:Http请求工具类

    HttpClientUtils:Http请求工具类 Scala:HttpClientUtils Scala:HttpClientUtils import java.io.IOException imp ...

  2. WebUtils-网络请求工具类

    网络请求工具类,大幅代码借鉴aplipay. using System; using System.Collections.Generic; using System.IO; using System ...

  3. Http、Https请求工具类

    最近在做微信开发,使用http调用第三方服务API,有些是需要https协议,通过资料和自己编码,写了个支持http和https的工具类,经验证可用,现贴出来保留,也供需要的人使用(有不足的地方,也请 ...

  4. 微信https请求工具类

    工作中用到的微信https请求工具类. package com.gxgrh.wechat.tools; import com.gxgrh.wechat.wechatapi.service.System ...

  5. HTTP请求工具类

    HTTP请求工具类,适用于微信服务器请求,可以自测 代码; /// <summary> /// HTTP请求工具类 /// </summary> public class Ht ...

  6. 实现一个简单的http请求工具类

    OC自带的http请求用起来不直观,asihttprequest库又太大了,依赖也多,下面实现一个简单的http请求工具类 四个文件源码大致如下,还有优化空间 MYHttpRequest.h(类定义, ...

  7. 远程Get,Post请求工具类

    1.远程请求工具类   import java.io.*; import java.net.URL; import java.net.URLConnection; import java.util.L ...

  8. C#实现的UDP收发请求工具类实例

    本文实例讲述了C#实现的UDP收发请求工具类.分享给大家供大家参考,具体如下: 初始化: ListeningPort = int.Parse(ConfigurationManager.AppSetti ...

  9. ajax请求工具类

    ajax的get和post请求工具类: /** * 公共方法类 *  * 使用  变量名=function()定义函数时,如果在变量名前加var,则这个变量变成局部变量 */var Common = ...

  10. 【原创】标准HTTP请求工具类

    以下是个人在项目开发过程中,总结的Http请求工具类,主要包括四种: 1.处理http POST请求[XML格式.无解压]: 2.处理http GET请求[XML格式.无解压]: 3.处理http P ...

随机推荐

  1. OI 学习笔记 I:图论(更新中)

    阅读时建议在右下角开启目录. 由于作者的数学水平限制和篇幅限制,有些结论可能仅给出感性理解或不给出证明,有疑惑的读者可以百度答案或者前往参考资料一栏查找. 另外,因为图论的内容比较杂,有些与树相关的算 ...

  2. 从零实现的浏览器Web脚本

    从零实现的浏览器Web脚本 在之前我们介绍了从零实现Chrome扩展,而实际上浏览器级别的扩展整体架构非常复杂,尽管当前有统一规范但不同浏览器的具体实现不尽相同,并且成为开发者并上架Chrome应用商 ...

  3. C语言从键盘上输入一个梯形的上底a、下底b和高h,输出梯形的面积。

    #include<stdio.h> int main() { double a, b, h, s;//定义变量,上底,下底,高,面积 scanf_s("%lf,%lf,%lf&q ...

  4. H.264 和 H.265对比

    前言 H.264标准正式发布于2003年3月,距今已经20多年了,但它仍然是当下最流行的视频编解码标准. H.265正式发布于2013年4月.虽然H.265标准是围绕着H.264进行制定的,也保留了原 ...

  5. 🔥🔥Java开发者的Python快速进修指南:网络编程及并发编程

    今天我们将对网络编程和多线程技术进行讲解,这两者的原理大家都已经了解了,因此我们主要关注的是它们的写法区别.虽然这些区别并不是非常明显,但我们之所以将网络编程和多线程一起讲解,是因为在学习Java的s ...

  6. sqlite数据库删除了数据,为什么文件不会变小?

    SQLite数据库文件的大小不会自动缩小,即使删除了其中的数据. 这是因为在SQLite中,当数据被删除时,它实际上并没有立即从磁盘上移除,而是被标记为[已删除], 这种处理机制,被删除的数据仍然占用 ...

  7. 根据子节点ID获取结构树中该子节点的所有父节点ID

    数据源: let adreeJson = [{ cat_id: 1, cat_name: '大家电', cat_pid: 0, cat_level: 0, cat_deleted: false, ch ...

  8. windows下tomcat开机自启动

    在Windows下,可以通过以下步骤将Tomcat设置为开机自启动: 1. 打开Tomcat安装目录:通常情况下,Tomcat的安装目录位于`C:\Program Files\Apache Softw ...

  9. [NOI online22提高A] 丹钓战

    题目描述 有 \(n\) 个二元组 \((a_i, b_i)\),编号为 1 到 n. 有一个初始为空的栈 SS,向其中加入元素 \((a_i, b_i)\) 时,先不断弹出栈顶元素直至栈空或栈顶元素 ...

  10. Go 泛型之泛型约束

    Go 泛型之泛型约束 目录 Go 泛型之泛型约束 一.引入 二.最宽松的约束:any 三.支持比较操作的内置约束:comparable 四.自定义约束 五.类型集合(type set) 六.简化版的约 ...