package com.bigchange.http import com.bigchange.log.CLogger import dispatch.Defaults._ import dispatch._ import scala.collection.mutable import scala.util.{Failure, Success} /** * Created by C.J.YOU on 16/1/13. */ abstract class Http extends CLogger { /** * 格式化成http请求的参数 * @param parameter 参数HashMap * @return 参数 */ def getParameters(parameter: mutable.HashMap[String,String]): String = { var strParam:String = "" val iterator = parameter.keySet.iterator while(iterator.hasNext) { val key = iterator.next() if(parameter.get(key) != null) { strParam += key + "=" + parameter.get(key).get if(iterator.hasNext) strParam += "&" } } strParam } /** * 得到最终的url * @param url 一级url域名 * @param parameters 参数内容map * @return url */ def getUrl(url:String, parameters:mutable.HashMap[String,String]): String = { val strParam = getParameters(parameters) var strUrl = url if (strParam != null) { if (url.indexOf("?") >= 0) strUrl += "&" + strParam else strUrl += "?" + strParam } strUrl } /** * get 请求 * @param strUrl 一级url域名 * @param parameters 参数内容 map * @param parse 暂无实际含义 */ def get(strUrl:String, parameters:mutable.HashMap[String,String], parse: String): Unit = { try { val finalUrl = getUrl(strUrl, parameters) val req = url(finalUrl) val response = Http(req OK as.String) response onComplete { case Success(content) => // println("get Success content:" + content) case Failure(t) => // println("get Success content:"+ t.getMessage) } } catch { case e:Exception => error("get url request Exception") } } /** * post 请求 * @param strUrl 一级url域名 * @param parameters 参数内容 map * @param parse 暂无实际含义 */ def post(strUrl:String, parameters:mutable.HashMap[String,String], parse: String): Unit = { val post = url(strUrl) << parameters val response : Future[String] = Http(post OK as.String) response onComplete { case Success(content) => // parse(content) println("post Success content:"+content) case Failure(t) => println("post Failure content:"+t) } } }