Search in sources :

Example 1 with IdentityContentProcessor

use of br.com.caelum.restfulie.http.IdentityContentProcessor in project restfulie-java by caelum.

the class JavaNetDispatcher method process.

public Response process(Request details, String verb, URI uri, Object payload) {
    if (payload == null) {
        return access(details, verb, uri);
    }
    try {
        Map<String, String> headers = details.getHeaders();
        HttpURLConnection connection = prepareConnectionWith(headers, uri);
        if (!headers.containsKey("Content-type")) {
            throw new RestfulieException("You should set a content type prior to sending some payload.");
        }
        connection.setDoOutput(true);
        connection.setRequestMethod(verb);
        OutputStream output = connection.getOutputStream();
        Writer writer = new OutputStreamWriter(output);
        String type = headers.get("Content-type");
        handlerFor(type).marshal(payload, writer, client);
        writer.flush();
        return responseFor(connection, new IdentityContentProcessor(), details);
    } catch (IOException e) {
        throw new RestfulieException("Unable to execute " + uri, e);
    }
}
Also used : HttpURLConnection(java.net.HttpURLConnection) RestfulieException(br.com.caelum.restfulie.RestfulieException) OutputStream(java.io.OutputStream) OutputStreamWriter(java.io.OutputStreamWriter) IOException(java.io.IOException) Writer(java.io.Writer) OutputStreamWriter(java.io.OutputStreamWriter) IdentityContentProcessor(br.com.caelum.restfulie.http.IdentityContentProcessor)

Aggregations

RestfulieException (br.com.caelum.restfulie.RestfulieException)1 IdentityContentProcessor (br.com.caelum.restfulie.http.IdentityContentProcessor)1 IOException (java.io.IOException)1 OutputStream (java.io.OutputStream)1 OutputStreamWriter (java.io.OutputStreamWriter)1 Writer (java.io.Writer)1 HttpURLConnection (java.net.HttpURLConnection)1