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. 每天5分钟复习OpenStack(七)内存虚拟化

    标题中的存储虚拟化,涉及到两个方面,分别是内存和磁盘的虚拟化技术.内存的虚拟化就不得不提EPT和VPID 技术. 首先申明下本人其实不想写一些纯理论的东西,但是架不住面试经被问,为此特将一些特别复杂的 ...

  2. 相邻像素相关性的matlab实现

    目录 加密性能分析(一)相邻像素相关性的matlab实现 相邻像素相关性 (一)概念 (二)相邻像素的相关系数 (三)相邻像素分布图 加密性能分析(一)相邻像素相关性的matlab实现 相邻像素相关性 ...

  3. 持续集成(CI)、自动化构建和自动化测试--初探

    转自:http://blog.csdn.net/adparking/article/details/5796532 此文章是为了总结前一段时间由于Maven2的学习而引起的一个持续集成的学习. 一.什 ...

  4. Kurator v0.5.0发布,打造统一的多集群备份与存储体验

    本文分享自华为云社区<Kurator v0.5.0正式发布! 打造统一的多集群备份与存储体验>,作者: 云容器大未来 . Kurator 是由华为云推出的开源分布式云原生套件.面向分布式云 ...

  5. GitHub - 如何对开源项目做出贡献

    GitHub - 对项目做出贡献 转载来自git官方教程:https://git-scm.com/book/zh/v2/GitHub-对项目做出贡献 对项目做出贡献 账户已经建立好了,现在我们来了解一 ...

  6. 什么是PIO

    PIO,最早是我在raspberry pi pico的介绍中偶然看到的一个新词 转载来在[https://zhuanlan.zhihu.com/p/347948344] 关于PIO的介绍如下: MCU ...

  7. git 忽略已提交(commit)的文件/文件夹

    git 忽略已提交的文件或文件夹 最好是在工程一开始就编辑好 .gitignore 文件, 在第一次提交的时候仔细检查避免添加那些无用的文件 因为 .gitignore 只能对未提交过的文件起效, 也 ...

  8. CF510B Fox And Two Dots

    题目大意 矩阵中各个方格都有颜色,判断是否有相同颜色的方块可以组成环.(原题链接:CF510B Fox And Two Dots) 输入: 第一行:\(n\), \(m\),表示矩阵的行和列 接下来\ ...

  9. 教育管理工具类 APP 在智慧校园中的应用探究?

    智慧校园是指利用信息化技术,将学校的管理.教育教学等方面进行整合和优化,实现校园运行的智能化和高效化. 在智慧校园建设中,教育管理工具类APP发挥着重要的作用.本文将详细探究教育管理工具类APP在智慧 ...

  10. [AI]大模型稳定角色扮演形成“自我认知”

    引言 自我身份认知是人类重要的认知能力之一,它决定着个体在社会中的定位以及与他人的互动方式.了解自我身份认知形成的机理对心理学和认知科学研究具有重要意义.传统上,人类自我认知一直被视为一个个体内在形成 ...