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. 如何在Excel中实现三联类模板?

    本文由葡萄城技术团队原创并首发.转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具.解决方案和服务,赋能开发者. 前言 在一些报表打印应用场景中,会有类似于如下图所示的排版格式: 一般情况下 ...

  2. Unity3D 选择焦点切换

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  3. JS逆向实战25——某壳找房模拟登录+百度喵星人指纹加密破解.

    声明 本文章中所有内容仅供学习交流,抓包内容.敏感网址.数据接口均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关,若有侵权,请联系我立即删除! 目标 目标网站 aHR0c ...

  4. Java Web程序在Tomcat上是如何运行的

    https://blog.csdn.net/fuzhongmin05/article/details/104379514 一个JVM是一个进程,JVM上跑Tomcat,Tomcat上可以部署多个应用. ...

  5. How to write a proposal?

    Most students and beginning researchers do not fully understand what a research proposal means, nor ...

  6. Python 在PDF中生成水印

    前言 在PDF中插入水印是比较常用的一种功能.一般在生成比较重要的,或者需要注明版权.作者的文档时使用比较多. 这里我将分享一个通过python代码为PDF文档添加水印的办法(包括文本水印和图像水印) ...

  7. CF1559D1. Mocha and Diana (Easy Version)

    原题链接:1559D1. Mocha and Diana (Easy Version) 题意: 小明和小红各有一个具有\(n\)个结点的森林,现执行操作: 加一条边,使得两人的森林还是森林 小明加一条 ...

  8. AcWing 190. 字串变换

    原题连接:AcWing 190. 字串变换 题意: 已知有两个字串 \(A, B\) 及一组字串变换的规则(至多 \(6\) 个规则): \(A_1→B_1\) \(A_2→B_2\) \(-\) 规 ...

  9. Miniconda安装及搭建

    Miniconda安装配置 下载Miniconda Miniconda下载地址 最新版 Miniconda For Windows 下载链接 Windows 安装配置 修改Powershell执行策略 ...

  10. [OpenWrt]软路由H28K开启USB无线教程

    0x01 背景 H28K软路由带了一个USB2.0的接口,官方说是支持USB无线的:于是就网购了USB转WIFI的设备(芯片:RTL8811CU),拿到手后开心的插上去,发现没有任何反应:在Q裙中询问 ...