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...
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With