org.apache.http.impl.client.HttpClients Scala Examples
The following examples show how to use org.apache.http.impl.client.HttpClients.
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
Example 1
Source File: HTTPClientPutPlugin.scala From piflow with BSD 2-Clause "Simplified" License | 6 votes |
package cn.piflow.api import org.apache.http.client.methods.{CloseableHttpResponse, HttpPost} import org.apache.http.entity.StringEntity import org.apache.http.impl.client.HttpClients import org.apache.http.util.EntityUtils object HTTPClientPutPlugin { def main(args: Array[String]): Unit = { val json = """{"plugin":"piflowexternal.jar"}""" val url = "http://10.0.86.191:8002/plugin/add" val client = HttpClients.createDefault() val post:HttpPost = new HttpPost(url) post.addHeader("Content-Type", "application/json") post.setEntity(new StringEntity(json)) val response:CloseableHttpResponse = client.execute(post) val entity = response.getEntity val str = EntityUtils.toString(entity,"UTF-8") println(str) } }
Example 2
Source File: HttpInputDStream.scala From prosparkstreaming with Apache License 2.0 | 5 votes |
package org.apress.prospark import java.util.Timer import java.util.TimerTask import scala.reflect.ClassTag import org.apache.http.client.methods.HttpGet import org.apache.http.impl.client.CloseableHttpClient import org.apache.http.impl.client.HttpClients import org.apache.http.util.EntityUtils import org.apache.spark.Logging import org.apache.spark.storage.StorageLevel import org.apache.spark.streaming.StreamingContext import org.apache.spark.streaming.api.java.JavaDStream import org.apache.spark.streaming.api.java.JavaDStream.fromDStream import org.apache.spark.streaming.api.java.JavaStreamingContext import org.apache.spark.streaming.dstream.DStream import org.apache.spark.streaming.dstream.ReceiverInputDStream import org.apache.spark.streaming.receiver.Receiver class HttpInputDStream( @transient ssc_ : StreamingContext, storageLevel: StorageLevel, url: String, interval: Long) extends ReceiverInputDStream[String](ssc_) with Logging { def getReceiver(): Receiver[String] = { new HttpReceiver(storageLevel, url, interval) } } class HttpReceiver( storageLevel: StorageLevel, url: String, interval: Long) extends Receiver[String](storageLevel) with Logging { var httpClient: CloseableHttpClient = _ var trigger: Timer = _ def onStop() { httpClient.close() logInfo("Disconnected from Http Server") } def onStart() { httpClient = HttpClients.createDefault() trigger = new Timer() trigger.scheduleAtFixedRate(new TimerTask { def run() = doGet() }, 0, interval * 1000) logInfo("Http Receiver initiated") } def doGet() { logInfo("Fetching data from Http source") val response = httpClient.execute(new HttpGet(url)) try { val content = EntityUtils.toString(response.getEntity()) store(content) } catch { case e: Exception => restart("Error! Problems while connecting", e) } finally { response.close() } } } object HttpUtils { def createStream( ssc: StreamingContext, storageLevel: StorageLevel = StorageLevel.MEMORY_AND_DISK_SER_2, url: String, interval: Long): DStream[String] = { new HttpInputDStream(ssc, storageLevel, url, interval) } def createStream( jssc: JavaStreamingContext, storageLevel: StorageLevel, url: String, interval: Long): JavaDStream[String] = { implicitly[ClassTag[AnyRef]].asInstanceOf[ClassTag[String]] createStream(jssc.ssc, storageLevel, url, interval) } }
Example 3
Source File: HTTPClientStopSchedule.scala From piflow with BSD 2-Clause "Simplified" License | 5 votes |
package cn.piflow.api import org.apache.http.client.methods.{CloseableHttpResponse, HttpPost} import org.apache.http.entity.StringEntity import org.apache.http.impl.client.HttpClients import org.apache.http.util.EntityUtils object HTTPClientStopSchedule { def main(args: Array[String]): Unit = { val json = """{"scheduleId":"schedule_badbf32a-674d-42a9-8e13-e91ae1539e01"}""" val url = "http://10.0.88.13:8002/schedule/stop" val client = HttpClients.createDefault() val post:HttpPost = new HttpPost(url) post.addHeader("Content-Type", "application/json") post.setEntity(new StringEntity(json)) val response:CloseableHttpResponse = client.execute(post) val entity = response.getEntity val str = EntityUtils.toString(entity,"UTF-8") println(str) } }
Example 4
Source File: HTTPClientGetFlowGroupInfo.scala From piflow with BSD 2-Clause "Simplified" License | 5 votes |
package cn.piflow.api import org.apache.http.client.methods.{CloseableHttpResponse, HttpGet} import org.apache.http.impl.client.HttpClients import org.apache.http.util.EntityUtils object HTTPClientGetFlowGroupInfo { def main(args: Array[String]): Unit = { val url = "http://10.0.85.83:8001/group/info?groupId=group_91198855-afbc-4726-856f-31326173a90f" val client = HttpClients.createDefault() val getFlowGroupInfoData:HttpGet = new HttpGet(url) val response:CloseableHttpResponse = client.execute(getFlowGroupInfoData) val entity = response.getEntity val str = EntityUtils.toString(entity,"UTF-8") println("Code is " + str) } }
Example 5
Source File: PostUrl.scala From piflow with BSD 2-Clause "Simplified" License | 5 votes |
package cn.piflow.bundle.http import java.io.{BufferedReader, InputStreamReader} import java.net.URI import cn.piflow.conf.bean.PropertyDescriptor import cn.piflow.conf.util.{ImageUtil, MapUtil} import cn.piflow.conf.{ConfigurableStop, Port, StopGroup} import cn.piflow.{JobContext, JobInputStream, JobOutputStream, ProcessContext} import org.apache.commons.httpclient.HttpClient import org.apache.hadoop.conf.Configuration import org.apache.hadoop.fs.{FSDataInputStream, FileSystem, Path} import org.apache.http.client.methods.HttpPost import org.apache.http.entity.StringEntity import org.apache.http.impl.client.HttpClients import org.apache.http.util.EntityUtils import org.apache.spark.sql.SparkSession class PostUrl extends ConfigurableStop{ override val authorEmail: String = "[email protected]" override val inportList: List[String] = List(Port.DefaultPort) override val outportList: List[String] = List(Port.DefaultPort) override val description: String = "Send a post request to the specified http" var url : String= _ var jsonPath : String = _ override def perform(in: JobInputStream, out: JobOutputStream, pec: JobContext): Unit = { val spark = pec.get[SparkSession]() //read json from hdfs val conf = new Configuration() val fs = FileSystem.get(URI.create(jsonPath),conf) val stream: FSDataInputStream = fs.open(new Path(jsonPath)) val bufferReader = new BufferedReader(new InputStreamReader(stream)) var lineTxt = bufferReader.readLine() val buffer = new StringBuffer() while (lineTxt != null ){ buffer.append(lineTxt.mkString) lineTxt=bufferReader.readLine() } // post val client = HttpClients.createDefault() val httpClient = new HttpClient() httpClient.getParams().setContentCharset("utf-8") val post = new HttpPost(url) post.addHeader("content-Type","application/json") post.setEntity(new StringEntity(buffer.toString)) val response = client.execute(post) val entity = response.getEntity val str = EntityUtils.toString(entity,"UTF-8") println("Code is " + str) } override def setProperties(map: Map[String, Any]): Unit = { url = MapUtil.get(map,key="url").asInstanceOf[String] jsonPath = MapUtil.get(map,key="jsonPath").asInstanceOf[String] } override def getPropertyDescriptor(): List[PropertyDescriptor] = { var descriptor : List[PropertyDescriptor] = List() val url = new PropertyDescriptor() .name("url") .displayName("Url") .defaultValue("") .description("http request address") .required(true) .example("http://master:8002/flow/start") val jsonPath = new PropertyDescriptor() .name("jsonPath") .displayName("JsonPath") .defaultValue("") .description("json parameter path for post request") .required(true) .example("hdfs://master:9000/work/flow.json") descriptor = url :: descriptor descriptor = jsonPath :: descriptor descriptor } override def getIcon(): Array[Byte] = { ImageUtil.getImage("icon/http/PostUrl.png") } override def getGroup(): List[String] = { List(StopGroup.HttpGroup.toString) } override def initialize(ctx: ProcessContext): Unit = { } }
Example 6
Source File: GetUrlTest.scala From piflow with BSD 2-Clause "Simplified" License | 5 votes |
package cn.piflow.bundle.http import java.io.{BufferedReader, InputStreamReader, PrintWriter} import java.net.{HttpURLConnection, InetAddress, URL, URLConnection} import cn.piflow.Runner import cn.piflow.conf.bean.FlowBean import cn.piflow.conf.util.{FileUtil, OptionUtil} import cn.piflow.util.{PropertyUtil, ServerIpUtil} import org.apache.http.client.methods.{CloseableHttpResponse, HttpGet} import org.apache.http.impl.client.HttpClients import org.apache.http.util.EntityUtils import org.apache.spark.sql.SparkSession import org.h2.tools.Server import org.junit.Test import scala.util.parsing.json.JSON class GetUrlTest { @Test def testFlow(): Unit ={ //parse flow json val file = "src/main/resources/flow/http/getUrl.json" val flowJsonStr = FileUtil.fileReader(file) val map = OptionUtil.getAny(JSON.parseFull(flowJsonStr)).asInstanceOf[Map[String, Any]] println(map) //create flow val flowBean = FlowBean(map) val flow = flowBean.constructFlow() val ip = InetAddress.getLocalHost.getHostAddress cn.piflow.util.FileUtil.writeFile("server.ip=" + ip, ServerIpUtil.getServerIpFile()) val h2Server = Server.createTcpServer("-tcp", "-tcpAllowOthers", "-tcpPort","50001").start() //execute flow val spark = SparkSession.builder() .master("local[12]") .appName("hive") .config("spark.driver.memory", "4g") .config("spark.executor.memory", "8g") .config("spark.cores.max", "8") .config("hive.metastore.uris",PropertyUtil.getPropertyValue("hive.metastore.uris")) .enableHiveSupport() .getOrCreate() val process = Runner.create() .bind(classOf[SparkSession].getName, spark) .bind("checkpoint.path", "") .bind("debug.path","") .start(flow); process.awaitTermination(); val pid = process.pid(); println(pid + "!!!!!!!!!!!!!!!!!!!!!") spark.close(); } }
Example 7
Source File: FlowLauncher.scala From piflow with BSD 2-Clause "Simplified" License | 5 votes |
package cn.piflow.util import java.io.File import java.util.Date import java.util.concurrent.CountDownLatch import cn.piflow.Flow import org.apache.hadoop.security.SecurityUtil import org.apache.http.client.methods.{CloseableHttpResponse, HttpPut} import org.apache.http.entity.StringEntity import org.apache.http.impl.client.HttpClients import org.apache.http.util.EntityUtils import org.apache.spark.launcher.SparkLauncher object FlowLauncher { def launch(flow: Flow) : SparkLauncher = { var flowJson = flow.getFlowJson() println("FlowLauncher json:" + flowJson) val flowJsonencryptAES = SecurityUtil.encryptAES(flowJson) var appId : String = "" val countDownLatch = new CountDownLatch(1) val launcher = new SparkLauncher val sparkLauncher =launcher .setAppName(flow.getFlowName()) .setMaster(PropertyUtil.getPropertyValue("spark.master")) //.setDeployMode(PropertyUtil.getPropertyValue("spark.deploy.mode")) .setAppResource(ConfigureUtil.getPiFlowBundlePath()) .setVerbose(true) .setConf("spark.driver.memory", flow.getDriverMemory()) .setConf("spark.executor.instances", flow.getExecutorNum()) .setConf("spark.executor.memory", flow.getExecutorMem()) .setConf("spark.executor.cores",flow.getExecutorCores()) .addFile(PropertyUtil.getConfigureFile()) .addFile(ServerIpUtil.getServerIpFile()) .setMainClass("cn.piflow.api.StartFlowMain") .addAppArgs(flowJsonencryptAES) val sparkMaster = PropertyUtil.getPropertyValue("spark.master") if(sparkMaster.equals("yarn")){ sparkLauncher.setDeployMode(PropertyUtil.getPropertyValue("spark.deploy.mode")) sparkLauncher.setConf("spark.hadoop.yarn.resourcemanager.hostname", PropertyUtil.getPropertyValue("yarn.resourcemanager.hostname")) } //add other jars for application val classPath = PropertyUtil.getClassPath() val classPathFile = new File(classPath) if(classPathFile.exists()){ FileUtil.getJarFile(new File(classPath)).foreach(f => { println(f.getPath) sparkLauncher.addJar(f.getPath) }) } val scalaPath = PropertyUtil.getScalaPath() val scalaPathFile = new File(scalaPath) if(scalaPathFile.exists()){ FileUtil.getJarFile(new File(scalaPath)).foreach(f => { println(f.getPath) sparkLauncher.addJar(f.getPath) }) } sparkLauncher } def stop(appID: String) = { println("Stop Flow !!!!!!!!!!!!!!!!!!!!!!!!!!") //yarn application kill appId val url = ConfigureUtil.getYarnResourceManagerWebAppAddress() + appID + "/state" val client = HttpClients.createDefault() val put:HttpPut = new HttpPut(url) val body ="{\"state\":\"KILLED\"}" put.addHeader("Content-Type", "application/json") put.setEntity(new StringEntity(body)) val response:CloseableHttpResponse = client.execute(put) val entity = response.getEntity val str = EntityUtils.toString(entity,"UTF-8") //update db println("Update flow state after Stop Flow !!!!!!!!!!!!!!!!!!!!!!!!!!") H2Util.updateFlowState(appID, FlowState.KILLED) H2Util.updateFlowFinishedTime(appID, new Date().toString) "ok" } }
Example 8
Source File: Slack.scala From amadou with Apache License 2.0 | 5 votes |
package com.mediative.amadou import org.apache.http.client.methods.HttpPost import org.apache.http.entity.{ContentType, StringEntity} import org.apache.http.impl.client.HttpClients import org.json4s.NoTypeHints import org.json4s.jackson.Serialization import org.json4s.jackson.Serialization.{write} object Slack { case class PostException(msg: String) extends RuntimeException(msg) case class Payload( channel: String, text: String, username: String, icon_emoji: String, link_names: Boolean) } def post(message: String, icon: String = this.icon): Unit = { val payload = Payload(channel, message, user, icon, true) logger.info(s"Posting $payload to $url") val client = HttpClients.createDefault() val requestEntity = new StringEntity(write(payload), ContentType.APPLICATION_JSON) val postMethod = new HttpPost(url) postMethod.setEntity(requestEntity) val response = client.execute(postMethod) client.close() val status = response.getStatusLine if (status.getStatusCode != 200) throw PostException( s"$url replied with status ${status.getStatusCode}: ${status.getReasonPhrase}") } }
Example 9
Source File: HttpInputDStream.scala From prosparkstreaming with Apache License 2.0 | 5 votes |
package org.apress.prospark import java.util.Timer import java.util.TimerTask import scala.reflect.ClassTag import org.apache.http.client.methods.HttpGet import org.apache.http.impl.client.CloseableHttpClient import org.apache.http.impl.client.HttpClients import org.apache.http.util.EntityUtils import org.apache.spark.Logging import org.apache.spark.storage.StorageLevel import org.apache.spark.streaming.StreamingContext import org.apache.spark.streaming.api.java.JavaDStream import org.apache.spark.streaming.api.java.JavaDStream.fromDStream import org.apache.spark.streaming.api.java.JavaStreamingContext import org.apache.spark.streaming.dstream.DStream import org.apache.spark.streaming.dstream.ReceiverInputDStream import org.apache.spark.streaming.receiver.Receiver class HttpInputDStream( @transient ssc_ : StreamingContext, storageLevel: StorageLevel, url: String, interval: Long) extends ReceiverInputDStream[String](ssc_) with Logging { def getReceiver(): Receiver[String] = { new HttpReceiver(storageLevel, url, interval) } } class HttpReceiver( storageLevel: StorageLevel, url: String, interval: Long) extends Receiver[String](storageLevel) with Logging { var httpClient: CloseableHttpClient = _ var trigger: Timer = _ def onStop() { httpClient.close() logInfo("Disconnected from Http Server") } def onStart() { httpClient = HttpClients.createDefault() trigger = new Timer() trigger.scheduleAtFixedRate(new TimerTask { def run() = doGet() }, 0, interval * 1000) logInfo("Http Receiver initiated") } def doGet() { logInfo("Fetching data from Http source") val response = httpClient.execute(new HttpGet(url)) try { val content = EntityUtils.toString(response.getEntity()) store(content) } catch { case e: Exception => restart("Error! Problems while connecting", e) } finally { response.close() } } } object HttpUtils { def createStream( ssc: StreamingContext, storageLevel: StorageLevel = StorageLevel.MEMORY_AND_DISK_SER_2, url: String, interval: Long): DStream[String] = { new HttpInputDStream(ssc, storageLevel, url, interval) } def createStream( jssc: JavaStreamingContext, storageLevel: StorageLevel, url: String, interval: Long): JavaDStream[String] = { implicitly[ClassTag[AnyRef]].asInstanceOf[ClassTag[String]] createStream(jssc.ssc, storageLevel, url, interval) } }
Example 10
Source File: HTTPClientGetFlowInfo.scala From piflow with BSD 2-Clause "Simplified" License | 5 votes |
package cn.piflow.api import org.apache.commons.httpclient.URI import org.apache.http.client.methods.{CloseableHttpResponse, HttpGet, HttpPost} import org.apache.http.impl.client.HttpClients import org.apache.http.message.BasicNameValuePair import org.apache.http.util.EntityUtils import org.omg.CORBA.NameValuePair object HTTPClientGetFlowInfo { def main(args: Array[String]): Unit = { val url = "http://10.0.86.98:8001/flow/info?appID=application_1562293222869_0420" val client = HttpClients.createDefault() val getFlowDebugData:HttpGet = new HttpGet(url) val response:CloseableHttpResponse = client.execute(getFlowDebugData) val entity = response.getEntity val str = EntityUtils.toString(entity,"UTF-8") println("Code is " + str) } }
Example 11
Source File: HttpClientUtils.scala From spark-powerbi-connector with Apache License 2.0 | 5 votes |
package com.microsoft.azure.powerbi.common import org.apache.http.client.config.RequestConfig import org.apache.http.impl.client.{HttpClients, CloseableHttpClient} object HttpClientUtils { def getCustomHttpClient: CloseableHttpClient = { val customRequestConfig: RequestConfig = RequestConfig.custom() .setSocketTimeout(PowerBIClientConstants.sockectTimeoutInSeconds * 1000) .setConnectTimeout(PowerBIClientConstants.connectionTimeoutInSeconds * 1000) .setConnectionRequestTimeout(PowerBIClientConstants.connectionRequestTimeoutInSeconds * 1000) .build() val customHttpClient: CloseableHttpClient = HttpClients.custom() .setDefaultRequestConfig(customRequestConfig).build() customHttpClient } }
Example 12
Source File: HttpUtil.scala From CM-Well with Apache License 2.0 | 5 votes |
package cmwell.analytics.util import com.fasterxml.jackson.databind.{JsonNode, ObjectMapper} import org.apache.http.HttpResponse import org.apache.http.client.methods.{HttpGet, HttpPost} import org.apache.http.client.{ClientProtocolException, ResponseHandler} import org.apache.http.entity.{ContentType, StringEntity} import org.apache.http.impl.client.{CloseableHttpClient, HttpClients} import org.apache.http.util.EntityUtils object HttpUtil { private val mapper = new ObjectMapper() private val responseHandler = new ResponseHandler[String]() { override def handleResponse(response: HttpResponse): String = { val status = response.getStatusLine.getStatusCode if (status >= 200 && status < 300) { val entity = response.getEntity if (entity != null) EntityUtils.toString(entity) else throw new ClientProtocolException("Unexpected null response") } else { throw new ClientProtocolException("Unexpected response status: " + status) } } } def get(url: String, client: CloseableHttpClient): String = { val httpGet = new HttpGet(url) client.execute(httpGet, responseHandler) } def get(url: String): String = { val client = HttpClients.createDefault try { get(url, client) } finally { client.close() } } def getJson(url: String): JsonNode = { val client = HttpClients.createDefault try { getJson(url, client) } finally { client.close() } } def getJson(url: String, client: CloseableHttpClient): JsonNode = { mapper.readTree(get(url, client)) } def getJson(url: String, content: String, contentType: String): JsonNode = { val httpPost = new HttpPost(url) val entity = new StringEntity(content, ContentType.create(contentType, "UTF-8")) httpPost.setEntity(entity) val client = HttpClients.createDefault try { mapper.readTree(client.execute(httpPost, responseHandler)) } finally { client.close() } } }
Example 13
Source File: HttpRequestHandler.scala From sparklens with Apache License 2.0 | 5 votes |
package com.qubole.sparklens.helper import org.apache.http.client.methods.RequestBuilder import org.apache.http.entity.ContentType import org.apache.http.entity.mime.HttpMultipartMode import org.apache.http.entity.mime.MultipartEntityBuilder import org.apache.http.impl.client.HttpClients import java.io.File import org.apache.http.HttpResponse object HttpRequestHandler { def requestReport(fileName: String, email: String): HttpResponse = { val httpclient = HttpClients.createDefault() val file = new File(fileName) val builder = MultipartEntityBuilder.create() .setMode(HttpMultipartMode.BROWSER_COMPATIBLE) .addBinaryBody("file-2", file, ContentType.DEFAULT_BINARY, file.getName()) .addTextBody("email", email) val postData = builder.build() val request = RequestBuilder .post("http://sparklens.qubole.com/generate_report/request_generate_report") .setEntity(postData) .build() val response = httpclient.execute(request) response } }
Example 14
Source File: ProxyCrawler.scala From ProxyCrawler with Apache License 2.0 | 5 votes |
package org.crowdcrawler.proxycrawler import java.io.IOException import java.net.URI import java.security.cert.X509Certificate import com.typesafe.scalalogging.Logger import org.apache.http.client.methods.HttpGet import org.apache.http.impl.client.HttpClients import org.apache.http.ssl.{TrustStrategy, SSLContexts} import org.apache.http.conn.ssl.{NoopHostnameVerifier, SSLConnectionSocketFactory} import org.apache.http.util.EntityUtils import org.crowdcrawler.proxycrawler.crawler.plugins.AbstractPlugin import org.apache.http.HttpHeaders import org.slf4j.LoggerFactory import scala.collection.immutable import scala.collection.mutable class ProxyCrawler(plugins: List[AbstractPlugin]) { *;q=0.8"), (HttpHeaders.ACCEPT_ENCODING, "gzip, deflate, sdch"), (HttpHeaders.ACCEPT_LANGUAGE, "en-US,en;q=0.8,zh-CN;q=0.6,zh;q=0.4"), (HttpHeaders.CONNECTION, "keep-alive") ) private val CLIENT = { // trust all certificates including self-signed certificates val sslContext = SSLContexts.custom().loadTrustMaterial(null, new TrustStrategy() { def isTrusted(chain: Array[X509Certificate], authType: String) = true }).build() val connectionFactory = new SSLConnectionSocketFactory(sslContext, NoopHostnameVerifier.INSTANCE) HttpClients.custom().setSSLSocketFactory(connectionFactory).build() } def apply(classNames: String*): ProxyCrawler = { val plugins = mutable.ListBuffer.empty[AbstractPlugin] for (className <- classNames) { val clazz = Class.forName("org.crowdcrawler.proxycrawler.crawler.plugins." + className) plugins += clazz.newInstance().asInstanceOf[AbstractPlugin] } new ProxyCrawler(plugins.toList) } private def createRequest(uri: URI, headers: immutable.Map[String, String]): HttpGet = { val request = new HttpGet(uri) for (header <- headers) { request.setHeader(header._1, header._2) } request } }
Example 15
Source File: HttpProxyChecker.scala From ProxyCrawler with Apache License 2.0 | 5 votes |
package org.crowdcrawler.proxycrawler.checker import java.net.URI import java.nio.charset.StandardCharsets import org.apache.http.annotation.ThreadSafe import org.apache.http.HttpHost import org.apache.http.client.methods.HttpGet import org.apache.http.impl.client.HttpClients import org.apache.http.util.EntityUtils @ThreadSafe private[checker] object HttpProxyChecker extends AbstractProxyChecker { private val CLIENT = HttpClients.custom().setMaxConnTotal(AbstractProxyChecker.MAX_CONN) .disableRedirectHandling().build() private val TARGET_URL = new URI("http://www.baidu.com") def check(host: String, port: Int): (Int, Int) = { val request = new HttpGet(TARGET_URL) AbstractProxyChecker.configureRequest(request, Some(new HttpHost(host, port, "http"))) val response = CLIENT.execute(request) val statusCode = response.getStatusLine.getStatusCode val html = EntityUtils.toString(response.getEntity, StandardCharsets.UTF_8) if (statusCode == 200 && html.contains("<title>百度一下")) (statusCode, html.getBytes.length) else (statusCode, -1) } }
Example 16
Source File: SocksProxyChecker.scala From ProxyCrawler with Apache License 2.0 | 5 votes |
package org.crowdcrawler.proxycrawler.checker import java.net import java.net.{InetSocketAddress, Socket, URI} import java.nio.charset.StandardCharsets import javax.net.ssl.{HostnameVerifier, SSLContext} import org.apache.http.annotation.ThreadSafe import org.apache.http.client.methods.HttpGet import org.apache.http.client.protocol.HttpClientContext import org.apache.http.config.RegistryBuilder import org.apache.http.conn.socket.{ConnectionSocketFactory, PlainConnectionSocketFactory} import org.apache.http.conn.ssl.{NoopHostnameVerifier, SSLConnectionSocketFactory} import org.apache.http.impl.client.HttpClients import org.apache.http.impl.conn.PoolingHttpClientConnectionManager import org.apache.http.protocol.HttpContext import org.apache.http.util.EntityUtils @ThreadSafe private[checker] object SocksProxyChecker extends AbstractProxyChecker { private class MyHttpConnectionSocketFactory extends PlainConnectionSocketFactory { override def createSocket(context: HttpContext): Socket = { val socksAddress = context.getAttribute("socks.address").asInstanceOf[InetSocketAddress] val proxy = new net.Proxy(net.Proxy.Type.SOCKS, socksAddress) new Socket(proxy) } } private class MyHttpsConnectionSocketFactory(sslContext: SSLContext, verifier: HostnameVerifier) extends SSLConnectionSocketFactory(sslContext) { override def createSocket(context: HttpContext): Socket = { val socksAddress = context.getAttribute("socks.address").asInstanceOf[InetSocketAddress] val proxy = new net.Proxy(net.Proxy.Type.SOCKS, socksAddress) new Socket(proxy) } } private val CLIENT = { val reg = RegistryBuilder.create[ConnectionSocketFactory]() .register("http", new MyHttpConnectionSocketFactory()) .register("https", new MyHttpsConnectionSocketFactory(HttpsProxyChecker.SSL_CONTEXT, NoopHostnameVerifier.INSTANCE)) .build() val cm = new PoolingHttpClientConnectionManager(reg) cm.setMaxTotal(AbstractProxyChecker.MAX_CONN) HttpClients.custom().setConnectionManager(cm).disableRedirectHandling().build() } private val TARGET_URL = new URI("http://www.baidu.com") def check(host: String, port: Int): (Int, Int) = { val request = new HttpGet(TARGET_URL) AbstractProxyChecker.configureRequest(request) val httpContext = { val socksAddress = new InetSocketAddress(host, port) val context = HttpClientContext.create() context.setAttribute("socks.address", socksAddress) context } val response = CLIENT.execute(request, httpContext) val statusCode = response.getStatusLine.getStatusCode val html = EntityUtils.toString(response.getEntity, StandardCharsets.UTF_8) if (statusCode == 200 && html.contains("<title>百度一下")) (statusCode, html.getBytes.length) else (statusCode, -1) } }
Example 17
Source File: HttpsProxyChecker.scala From ProxyCrawler with Apache License 2.0 | 5 votes |
package org.crowdcrawler.proxycrawler.checker import java.net.URI import java.nio.charset.StandardCharsets import java.security.cert.X509Certificate import org.apache.http.HttpHost import org.apache.http.annotation.ThreadSafe import org.apache.http.client.methods.HttpGet import org.apache.http.conn.ssl.{NoopHostnameVerifier, SSLConnectionSocketFactory} import org.apache.http.impl.client.HttpClients import org.apache.http.ssl.{TrustStrategy, SSLContexts} import org.apache.http.util.EntityUtils @ThreadSafe private[checker] object HttpsProxyChecker extends AbstractProxyChecker { // trust all certificates including self-signed certificates private[checker] val SSL_CONTEXT = SSLContexts.custom().loadTrustMaterial(null, new TrustStrategy() { def isTrusted(chain: Array[X509Certificate], authType: String) = true }).build() private val CLIENT = { val connectionFactory = new SSLConnectionSocketFactory(SSL_CONTEXT, NoopHostnameVerifier.INSTANCE) HttpClients.custom().setSSLSocketFactory(connectionFactory).setMaxConnTotal(AbstractProxyChecker.MAX_CONN) .disableRedirectHandling().build() } private val TARGET_URL = new URI("https://www.google.com") def check(host: String, port: Int): (Int, Int) = { val request = new HttpGet(TARGET_URL) AbstractProxyChecker.configureRequest(request, Some(new HttpHost(host, port, "http"))) val response = CLIENT.execute(request) val statusCode = response.getStatusLine.getStatusCode val html = EntityUtils.toString(response.getEntity, StandardCharsets.UTF_8) if (statusCode == 200 && html.contains("<title>Google</title>")) (statusCode, html.getBytes.length) else (statusCode, -1) } }
Example 18
Source File: HTTPClientGetGroups.scala From piflow with BSD 2-Clause "Simplified" License | 5 votes |
package cn.piflow.api import org.apache.http.client.methods.{CloseableHttpResponse, HttpGet} import org.apache.http.impl.client.HttpClients import org.apache.http.util.EntityUtils object HTTPClientGetGroups { def main(args: Array[String]): Unit = { val url = "http://10.0.86.98:8001/stop/groups" val client = HttpClients.createDefault() val getGroups:HttpGet = new HttpGet(url) val response:CloseableHttpResponse = client.execute(getGroups) val entity = response.getEntity val str = EntityUtils.toString(entity,"UTF-8") println("Groups is: " + str) } }
Example 19
Source File: HTTPClientGetFlowCheckpoints.scala From piflow with BSD 2-Clause "Simplified" License | 5 votes |
package cn.piflow.api import org.apache.http.client.methods.{CloseableHttpResponse, HttpGet} import org.apache.http.impl.client.HttpClients import org.apache.http.util.EntityUtils object HTTPClientGetFlowCheckpoints { def main(args: Array[String]): Unit = { val url = "http://10.0.86.98:8001/flow/checkpoints?appID=process_9e291e46-fe25-4e7c-943d-0ff85dddb22d_1" val client = HttpClients.createDefault() val getFlowInfo:HttpGet = new HttpGet(url) val response:CloseableHttpResponse = client.execute(getFlowInfo) val entity = response.getEntity val str = EntityUtils.toString(entity,"UTF-8") println("Flow checkpoint is " + str) } }
Example 20
Source File: HTTPClientStartFlowFlumeStreaming.scala From piflow with BSD 2-Clause "Simplified" License | 5 votes |
package cn.piflow.api import org.apache.http.client.methods.{CloseableHttpResponse, HttpPost} import org.apache.http.entity.StringEntity import org.apache.http.impl.client.HttpClients import org.apache.http.util.EntityUtils object HTTPClientStartFlowFlumeStreaming { def main(args: Array[String]): Unit = { //flume hostname must be one of the cluster worker node, the port should be greater than 10000 val json= """ |{ | "flow":{ | "name":"flumeStreaming", | "uuid":"1234", | "stops":[ | { | "uuid":"1111", | "name":"FlumeStream", | "bundle":"cn.piflow.bundle.streaming.FlumeStream", | "properties":{ | "hostname":"slave2", | "port":"10002", | "batchDuration":"5" | } | | }, | { | "uuid":"2222", | "name":"ConvertSchema", | "bundle":"cn.piflow.bundle.common.ConvertSchema", | "properties":{ | "schema":"value->line" | } | }, | { | "uuid":"3333", | "name":"CsvSave", | "bundle":"cn.piflow.bundle.csv.CsvSave", | "properties":{ | "csvSavePath":"hdfs://10.0.86.89:9000/xjzhu/flowStreaming", | "header":"true", | "delimiter":"," | } | } | ], | "paths":[ | { | "from":"FlumeStream", | "outport":"", | "inport":"", | "to":"ConvertSchema" | }, | { | "from":"ConvertSchema", | "outport":"", | "inport":"", | "to":"CsvSave" | } | ] | } |} """.stripMargin val url = "http://10.0.86.98:8001/flow/start" val client = HttpClients.createDefault() val post:HttpPost = new HttpPost(url) post.addHeader("Content-Type", "application/json") post.setEntity(new StringEntity(json)) val response:CloseableHttpResponse = client.execute(post) val entity = response.getEntity val str = EntityUtils.toString(entity,"UTF-8") println("Code is " + str) } }
Example 21
Source File: HTTPClientStartFlowKafkaStreaming.scala From piflow with BSD 2-Clause "Simplified" License | 5 votes |
package cn.piflow.api import org.apache.http.client.methods.{CloseableHttpResponse, HttpPost} import org.apache.http.entity.StringEntity import org.apache.http.impl.client.HttpClients import org.apache.http.util.EntityUtils object HTTPClientStartFlowKafkaStreaming { def main(args: Array[String]): Unit = { val json = """ |{ | "flow":{ | "name":"kafkaStreaming", | "uuid":"1234", | "stops":[ | { | "uuid":"1111", | "name":"kafkaStream", | "bundle":"cn.piflow.bundle.streaming.KafkaStream", | "properties":{ | "brokers":"10.0.86.191:9092,10.0.86.203:9092,10.0.86.210:9092", | "groupId":"piflow", | "topics":"streaming", | "batchDuration":"5" | } | | }, | { | "uuid":"2222", | "name":"ConvertSchema", | "bundle":"cn.piflow.bundle.common.ConvertSchema", | "properties":{ | "schema":"value->line" | } | }, | { | "uuid":"3333", | "name":"CsvSave", | "bundle":"cn.piflow.bundle.csv.CsvSave", | "properties":{ | "csvSavePath":"hdfs://10.0.86.89:9000/xjzhu/flowStreaming", | "header":"true", | "delimiter":"," | } | } | ], | "paths":[ | { | "from":"kafkaStream", | "outport":"", | "inport":"", | "to":"ConvertSchema" | }, | { | "from":"ConvertSchema", | "outport":"", | "inport":"", | "to":"CsvSave" | } | ] | } |} """.stripMargin val url = "http://10.0.86.191:8002/flow/start" val client = HttpClients.createDefault() val post:HttpPost = new HttpPost(url) post.addHeader("Content-Type", "application/json") post.setEntity(new StringEntity(json)) val response:CloseableHttpResponse = client.execute(post) val entity = response.getEntity val str = EntityUtils.toString(entity,"UTF-8") println("Code is " + str) } }
Example 22
Source File: HTTPClientGetStops.scala From piflow with BSD 2-Clause "Simplified" License | 5 votes |
package cn.piflow.api import org.apache.http.client.methods.{CloseableHttpResponse, HttpGet} import org.apache.http.impl.client.HttpClients import org.apache.http.util.EntityUtils object HTTPClientGetStops { def main(args: Array[String]): Unit = { //val url = "http://10.0.86.98:8002/stop/listWithGroup" val url = "http://10.0.86.98:8001/stop/list" val client = HttpClients.createDefault() val getGroups:HttpGet = new HttpGet(url) val response:CloseableHttpResponse = client.execute(getGroups) val entity = response.getEntity val str = EntityUtils.toString(entity,"UTF-8") println("Groups is: " + str) } }
Example 23
Source File: HTTPClientStopFlow.scala From piflow with BSD 2-Clause "Simplified" License | 5 votes |
package cn.piflow.api import org.apache.http.client.methods.{CloseableHttpResponse, HttpPost} import org.apache.http.entity.StringEntity import org.apache.http.impl.client.HttpClients import org.apache.http.util.EntityUtils object HTTPClientStopFlow { def main(args: Array[String]): Unit = { val json = """{"appID":"application_1562293222869_0099"}""" val url = "http://10.0.86.191:8002/flow/stop" val client = HttpClients.createDefault() val post:HttpPost = new HttpPost(url) post.addHeader("Content-Type", "application/json") post.setEntity(new StringEntity(json)) val response:CloseableHttpResponse = client.execute(post) val entity = response.getEntity val str = EntityUtils.toString(entity,"UTF-8") println(str) } }
Example 24
Source File: HTTPClientStopFlowGroup.scala From piflow with BSD 2-Clause "Simplified" License | 5 votes |
package cn.piflow.api import org.apache.http.client.methods.{CloseableHttpResponse, HttpPost} import org.apache.http.entity.StringEntity import org.apache.http.impl.client.HttpClients import org.apache.http.util.EntityUtils object HTTPClientStopFlowGroup { def main(args: Array[String]): Unit = { val json = """{"groupId":"group_91198855-afbc-4726-856f-31326173a90f"}""" val url = "http://10.0.85.83:8001/group/stop" val client = HttpClients.createDefault() val post:HttpPost = new HttpPost(url) post.addHeader("Content-Type", "application/json") post.setEntity(new StringEntity(json)) val response:CloseableHttpResponse = client.execute(post) val entity = response.getEntity val str = EntityUtils.toString(entity,"UTF-8") println(str) } }
Example 25
Source File: HTTPClientGetFlowGroupProcess.scala From piflow with BSD 2-Clause "Simplified" License | 5 votes |
package cn.piflow.api import org.apache.http.client.methods.{CloseableHttpResponse, HttpGet} import org.apache.http.impl.client.HttpClients import org.apache.http.util.EntityUtils object HTTPClientGetFlowGroupProcess { def main(args: Array[String]): Unit = { val url = "http://10.0.85.83:8001/group/progress?groupId=group_527ff279-a278-41b0-a658-7595a576fbb9" val client = HttpClients.createDefault() val getFlowGroupProgressData:HttpGet = new HttpGet(url) val response:CloseableHttpResponse = client.execute(getFlowGroupProgressData) val entity = response.getEntity val str = EntityUtils.toString(entity,"UTF-8") println("Code is " + str) } }
Example 26
Source File: HTTPClientStartFlowSocketTextStreaming.scala From piflow with BSD 2-Clause "Simplified" License | 5 votes |
package cn.piflow.api import org.apache.http.client.methods.{CloseableHttpResponse, HttpPost} import org.apache.http.entity.StringEntity import org.apache.http.impl.client.HttpClients import org.apache.http.util.EntityUtils object HTTPClientStartFlowSocketTextStreaming { def main(args: Array[String]): Unit = { val json = """ |{ | "flow":{ | "name":"socketStreaming", | "uuid":"1234", | "stops":[ | { | "uuid":"1111", | "name":"SocketTextStream", | "bundle":"cn.piflow.bundle.streaming.SocketTextStream", | "properties":{ | "hostname":"10.0.86.98", | "port":"9999", | "batchDuration":"5" | } | | }, | { | "uuid":"2222", | "name":"ConvertSchema", | "bundle":"cn.piflow.bundle.common.ConvertSchema", | "properties":{ | "schema":"value->line" | } | }, | { | "uuid":"3333", | "name":"CsvSave", | "bundle":"cn.piflow.bundle.csv.CsvSave", | "properties":{ | "csvSavePath":"hdfs://10.0.86.89:9000/xjzhu/flowStreaming", | "header":"true", | "delimiter":"," | } | } | ], | "paths":[ | { | "from":"SocketTextStream", | "outport":"", | "inport":"", | "to":"ConvertSchema" | }, | { | "from":"ConvertSchema", | "outport":"", | "inport":"", | "to":"CsvSave" | } | ] | } |} """.stripMargin val url = "http://10.0.86.98:8001/flow/start" val client = HttpClients.createDefault() val post:HttpPost = new HttpPost(url) post.addHeader("Content-Type", "application/json") post.setEntity(new StringEntity(json)) val response:CloseableHttpResponse = client.execute(post) val entity = response.getEntity val str = EntityUtils.toString(entity,"UTF-8") println("Code is " + str) } }
Example 27
Source File: HTTPClientGetStopInfo.scala From piflow with BSD 2-Clause "Simplified" License | 5 votes |
package cn.piflow.api import org.apache.http.client.methods.{CloseableHttpResponse, HttpGet} import org.apache.http.impl.client.HttpClients import org.apache.http.util.EntityUtils object HTTPClientGetStopInfo { def main(args: Array[String]): Unit = { val url = "http://10.0.85.83:8001/stop/info?bundle=cn.piflow.bundle.csv.CsvParser" val client = HttpClients.createDefault() val getFlowInfo:HttpGet = new HttpGet(url) val response:CloseableHttpResponse = client.execute(getFlowInfo) val entity = response.getEntity val str = EntityUtils.toString(entity,"UTF-8") println("result : " + str) } }
Example 28
Source File: HTTPClientStartFlowTextFileStreaming.scala From piflow with BSD 2-Clause "Simplified" License | 5 votes |
package cn.piflow.api import org.apache.http.client.methods.{CloseableHttpResponse, HttpPost} import org.apache.http.entity.StringEntity import org.apache.http.impl.client.HttpClients import org.apache.http.util.EntityUtils object HTTPClientStartFlowTextFileStreaming { def main(args: Array[String]): Unit = { //mybe you should change the directory when no data received val json = """ |{ | "flow":{ | "name":"TextFileStream", | "uuid":"1234", | "stops":[ | { | "uuid":"1111", | "name":"TextFileStream", | "bundle":"cn.piflow.bundle.streaming.TextFileStream", | "properties":{ | "directory":"hdfs://10.0.86.191:9000/xjzhu/TextFileStream3", | "batchDuration":"5" | } | | },4.2bcefghw | { | "uuid":"2222", | "name":"ConvertSchema", | "bundle":"cn.piflow.bundle.common.ConvertSchema", | "properties":{ | "schema":"value->line" | } | }, | { | "uuid":"3333", | "name":"CsvSave", | "bundle":"cn.piflow.bundle.csv.CsvSave", | "properties":{ | "csvSavePath":"hdfs://10.0.86.89:9000/xjzhu/flowStreaming", | "header":"true", | "delimiter":"," | } | } | ], | "paths":[ | { | "from":"TextFileStream", | "outport":"", | "inport":"", | "to":"ConvertSchema" | }, | { | "from":"ConvertSchema", | "outport":"", | "inport":"", | "to":"CsvSave" | } | ] | } |} """.stripMargin val url = "http://10.0.86.98:8001/flow/start" val client = HttpClients.createDefault() val post:HttpPost = new HttpPost(url) post.addHeader("Content-Type", "application/json") post.setEntity(new StringEntity(json)) val response:CloseableHttpResponse = client.execute(post) val entity = response.getEntity val str = EntityUtils.toString(entity,"UTF-8") println("Code is " + str) } }
Example 29
Source File: HTTPClientRemovePlugin.scala From piflow with BSD 2-Clause "Simplified" License | 5 votes |
package cn.piflow.api import org.apache.http.client.methods.{CloseableHttpResponse, HttpPost} import org.apache.http.entity.StringEntity import org.apache.http.impl.client.HttpClients import org.apache.http.util.EntityUtils object HTTPClientRemovePlugin { def main(args: Array[String]): Unit = { val json = """{"plugin":"piflowexternal.jar"}""" val url = "http://10.0.85.83:8001/plugin/remove" val client = HttpClients.createDefault() val post:HttpPost = new HttpPost(url) post.addHeader("Content-Type", "application/json") post.setEntity(new StringEntity(json)) val response:CloseableHttpResponse = client.execute(post) val entity = response.getEntity val str = EntityUtils.toString(entity,"UTF-8") println(str) } }
Example 30
Source File: HTTPClientGetScheduleInfo.scala From piflow with BSD 2-Clause "Simplified" License | 5 votes |
package cn.piflow.api import org.apache.http.client.config.RequestConfig import org.apache.http.client.methods.{CloseableHttpResponse, HttpGet, HttpPost} import org.apache.http.entity.StringEntity import org.apache.http.impl.client.{HttpClientBuilder, HttpClients} import org.apache.http.util.EntityUtils object HTTPClientGetScheduleInfo { def main(args: Array[String]): Unit = { val url = "http://10.0.85.83:8001/schedule/info?scheduleId=schedule_9339f584-4ec5-4e12-a51d-4214182ff63a" val client = HttpClients.createDefault() val getFlowDebugData:HttpGet = new HttpGet(url) val response:CloseableHttpResponse = client.execute(getFlowDebugData) val entity = response.getEntity val str = EntityUtils.toString(entity,"UTF-8") println("Code is " + str) } }
Example 31
Source File: HTTPClientGetAllPlugin.scala From piflow with BSD 2-Clause "Simplified" License | 5 votes |
package cn.piflow.api import org.apache.http.client.methods.{CloseableHttpResponse, HttpGet} import org.apache.http.impl.client.HttpClients import org.apache.http.util.EntityUtils object HTTPClientGetAllPlugin { def main(args: Array[String]): Unit = { val url = "http://10.0.85.83:8001/plugin/info" val client = HttpClients.createDefault() val getFlowInfo:HttpGet = new HttpGet(url) val response:CloseableHttpResponse = client.execute(getFlowInfo) val entity = response.getEntity val str = EntityUtils.toString(entity,"UTF-8") println("result : " + str) } }
Example 32
Source File: HTTPClientGetFlowDebugData.scala From piflow with BSD 2-Clause "Simplified" License | 5 votes |
package cn.piflow.api import org.apache.http.client.methods.{CloseableHttpResponse, HttpGet} import org.apache.http.impl.client.HttpClients import org.apache.http.util.EntityUtils object HTTPClientGetFlowDebugData { def main(args: Array[String]): Unit = { // val url = "http://10.0.86.191:8002/flow/debugData?appID=application_1562293222869_0090&stopName=Fork&port=out3" val client = HttpClients.createDefault() val getFlowInfo:HttpGet = new HttpGet(url) val response:CloseableHttpResponse = client.execute(getFlowInfo) val entity = response.getEntity val str = EntityUtils.toString(entity,"UTF-8") println( str) } }