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. CSS必学:元素之间的空白与行内块的幽灵空白问题

    作者:WangMin 格言:努力做好自己喜欢的每一件事 CSDN原创文章 博客地址 WangMin 我们在开发的过程中,难免会出现一些难以预料的问题.那么其中,CSS空白现象就是非常常见的问题之一.虽 ...

  2. 【re】[NISACTF 2022]string --linux下的随机数

    附件下载,查壳 发现是ELF程序,64位,ida打开分析 flag函数点进去 前面一堆代码其实都不重要,直接看主要代码:  puts("The length of flag is 13&qu ...

  3. 栈与队列应用:迷宫问题(DFS非最短路径)

    //先输入行列,在输入迷宫 以-1 -1 结束 #include<stdio.h> #include<stdlib.h> #define MAXSIZE 100 #define ...

  4. 决策树C4.5算法的技术深度剖析、实战解读

    在本篇深入探讨的文章中,我们全面分析了C4.5决策树算法,包括其核心原理.实现流程.实战案例,以及与其他流行决策树算法(如ID3.CART和Random Forests)的比较.文章不仅涵盖了丰富的理 ...

  5. 学习JavaScript的第一天

    JavaScript概述 JavaScript的介绍 js属于一门面向对象的编程语言 属于跨平台 面向对象(oop) 以对象方式实现所有的功能 跨平台:js代码不论是在什么样的操作系统上执行结果都是一 ...

  6. 海量电商数据与用友YS系统数据对接案例

    案例背景 客户是历史比较悠久的企业.企业内部用的系统多达十几套,专门成立信息化公司进行数字化转型,第一期需求系统旺店通的ERP以及旺店通的WMS并且启用京东的沧海外仓. 在选型ERP用友ERP和金蝶E ...

  7. Mysql中的FOREIGN_KEY_CHECKS方法【外键约束作用】

    一.命令行 首先FOREIGN_KEY_CHECKS方法的作用是用来启动和关闭外键约束的方法. 二.外键约束 即数据库中两个数据表之间的某个列建立的一种联系.MySQL通过外键约束的引入,可以使得数据 ...

  8. Go切片是值传递还是引用传递?

    Go没有引用传递和引用类型!!! 很多人有个误区,认为涉及Go切片的参数是引用传递,或者经常听到Go切片是引用类型这种说法,今天我们就来说一下方面的问题. 什么是值传递? 将实参的值传递给形参,形参是 ...

  9. 从0到1,手把手带你开发截图工具ScreenCap------001实现基本的截图功能

    ScreenCap---Version:001 说明 从0到1,手把手带你开发windows端的截屏软件ScreenCap 当前版本:ScreenCap---001 支持全屏截图 支持鼠标拖动截图区域 ...

  10. 【已解决】【Tensorflow2.12.0版本以后合并CPU和GPU版】Tensorflow-gpu==2.12.0 安装失败解决办法

    直接上解决方式,需要知道原因的看后文. 直接安装 tensroflow,从 2022 年 12 月起 tensorflow-gpu 已经合并到 tensorflow 包中了 pip install t ...