Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Scala and HttpClient: How do I resolve this error?

I'm using scala with Apache HttpClient, and working through examples. I'm getting the following error:

/Users/name/IdeaProjects/JakartaCapOne/src/JakExamp.scala
   Error:Error:line (16)error: overloaded method value execute with alternatives 
(org.apache.http.HttpHost,org.apache.http.HttpRequest)org.apache.http.HttpResponse 
<and> 
(org.apache.http.client.methods.HttpUriRequest,org.apache.http.protocol.HttpContext)org.apache.http.HttpResponse
 cannot be applied to 
(org.apache.http.client.methods.HttpGet,org.apache.http.client.ResponseHandler[String])
val responseBody = httpclient.execute(httpget, responseHandler)

Here is the code with the error and line in question highlighted:

import org.apache.http.client.ResponseHandler
import org.apache.http.client.HttpClient
import org.apache.http.client.methods.HttpGet
import org.apache.http.impl.client.BasicResponseHandler
import org.apache.http.impl.client.DefaultHttpClient


object JakExamp {
 def main(args : Array[String]) : Unit = {
   val httpclient: HttpClient = new DefaultHttpClient
   val httpget: HttpGet = new HttpGet("www.google.com")

   println("executing request..." + httpget.getURI)
   val responseHandler: ResponseHandler[String] = new BasicResponseHandler
   val responseBody = httpclient.execute(httpget, responseHandler)
   // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   println(responseBody)

   client.getConnectionManager.shutdown

 }
}

I can successfully run the example in java...

like image 695
Vonn Avatar asked May 10 '26 18:05

Vonn


1 Answers

Ive had to deal with this as well. Try something like the following:

val handler:ResponseHandler[String] = new BasicResponseHandler
val request = new HttpGet("...")
val response = client execute request
val body = handler handleResponse response

This works fine for me in 2.7.7. Its only 1 extra line, so not too bad.

like image 55
Jackson Davis Avatar answered May 13 '26 08:05

Jackson Davis



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!