HttpClientUtils:Http请求工具类
HttpClientUtils:Http请求工具类
Scala:HttpClientUtils
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()
    }
  }
}
HttpClientUtils:Http请求工具类的更多相关文章
- 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 ... 
随机推荐
- Ajax 详解及CORS
			Ajax 是什么? Ajax 即"Asynchronous Javascript And XML"(异步 JavaScript 和 XML)是指一种创建交互式网页应用的网页开发技术 ... 
- rocketmq 架构设计
			1 消息存储 消息存储是RocketMQ中最为复杂和最为重要的一部分,本节将分别从RocketMQ的消息存储整体架构.PageCache与Mmap内存映射以及RocketMQ中两种不同的刷盘方式三方面 ... 
- AtCoder Beginner Contest 187 F - Close Group
			题目链接 点我跳转 题目大意 给你一张完全图,你可以删除任意数量的边 要求删除完后剩余的所有子图必须是完全图 问完全子图数量最少是多少 解题思路 定义 \(ok[i]\) 表示状态为 \(i\) 时所 ... 
- 入门oj 5499: 讲话模式
			Description 每个人说话都有口头禅,现给出一个字符串,请求出其中出现次数最多的单词(不区分大小写). Input 输入一行,长度小于等于1048576的字符串输入至少包含一个字母或数字 Ou ... 
- 第二章节 BJROBOT IMU 自动校正 【ROS全开源阿克曼转向智能网联无人驾驶车】
			1.把小车平放在地板上,用资料里的虚拟机,打开一个终端 ssh 过去主控端启动roslaunch znjrobot bringup.launch . 2.再打开一个终端,ssh 过去主控端,在 ~/c ... 
- CSS&&label_div
			Css-div部分 本章主要内容 0.基础知识 1.CSS概述 2.CSS基础语法 3.CSS选择器 4.CSS主要属性 5.CSS核心机制-盒子模型 6.CSS重点和难点-定位 7.综合示例 基础知 ... 
- Python找对称数——纪念第一次自主编写代码
			2021-01-17 题目: [问题描述]已知10个四位数输出所有对称数及个数 n,例如1221.2332都是对称数[输入形式]10个四位数,以空格分隔开[输出形式]输入的四位数中的所有对称数,对称数 ... 
- Mongodb 安装和副本集集群搭建
			通用步骤,适用于所有你需要用的软件. 总结为5大步骤: 找到官网-->下载包-->解压-->修改配置-->启动 不懂的,首选官网api,次选百度 1.安装mongodb mon ... 
- 彻底搞懂MySQL为什么要使用B+树索引
			目录 MySQL的存储结构 表存储结构 B+树索引结构 B+树页节点结构 为什么要用B+树索引 二叉树 多叉树 B树 B+树 搞懂这个问题之前,我们首先来看一下,MySQL表的存储结构 MySQL的存 ... 
- LeetCode501.二叉搜索树中的众数
			题目,本题未做出,还有很多要学习 class Solution { public: vector<int>ans; int base,count,maxCount; void update ... 
