Example usage for org.apache.http.entity ByteArrayEntity setContentType

List of usage examples for org.apache.http.entity ByteArrayEntity setContentType

Introduction

In this page you can find the example usage for org.apache.http.entity ByteArrayEntity setContentType.

Prototype

public void setContentType(Header header) 

Source Link

Usage

From source file:com.nominanuda.web.http.HttpCoreHelper.java

private void fillMessageHeadersAndContent(HttpMessage msg, InputStream is) throws IOException, HttpException {
    CharArrayBuffer lineBuf = null;/*w  ww. j  a va  2 s  .co  m*/
    long cl = 0;
    Header ct = null;
    Header ce = null;
    while ((lineBuf = readLine(is)).length() > 0) {
        Header h = lineParser.parseHeader(lineBuf);
        String hn = h.getName();
        if (HDR_CONTENT_LENGTH.equalsIgnoreCase(hn)) {
            cl = Long.valueOf(h.getValue());
        } else if (HDR_CONTENT_TYPE.equalsIgnoreCase(hn)) {
            ct = h;
        } else if (HDR_CONTENT_ENCODING.equalsIgnoreCase(hn)) {
            ce = h;
        } else {
            msg.addHeader(h);
        }
    }
    if (cl > 0) {
        byte[] payload = IO.readAndClose(is);
        Check.runtime.assertTrue(cl == payload.length);
        ByteArrayEntity bae = new ByteArrayEntity(payload);
        if (ct != null) {
            bae.setContentType(ct);
        }
        if (ce != null) {
            bae.setContentEncoding(ce);
        }
        setEntity(msg, bae);
    }
}

From source file:uk.co.markfrimston.tasktree.TaskTree.java

public void synchronise(MergeConfirmer mergeConfirmer) throws Exception {
    if (loadUrl == null) {
        throw new Exception("No load URL defined");
    }/*from w ww .  j a  v  a 2s. co m*/
    if (saveUrl == null) {
        throw new Exception("No save URL defined");
    }
    if (mergeCommand == null) {
        throw new Exception("No merge command defined");
    }

    Long newTimestamp = new Date().getTime();

    HttpClient client = new DefaultHttpClient();
    DocumentBuilderFactory builderFact = DocumentBuilderFactory.newInstance();
    DocumentBuilder builder = builderFact.newDocumentBuilder();

    // make load request
    HttpPost post = new HttpPost(loadUrl);
    HttpResponse response = client.execute(post);
    if (response.getStatusLine().getStatusCode() != 200) {
        throw new Exception("Unexpected load response from server: " + response.getStatusLine().getStatusCode()
                + " " + response.getStatusLine().getReasonPhrase());
    }

    // get timestamp header
    Header[] tsHeaders = response.getHeaders("Timestamp");
    Long timestamp;
    if (tsHeaders == null || tsHeaders.length < 1) {
        throw new Exception("Missing timestamp from server");
    }
    try {
        timestamp = Long.parseLong(tsHeaders[0].getValue());
    } catch (NumberFormatException e) {
        throw new Exception("Invalid timestamp from server \"" + tsHeaders[0].getValue() + "\"");
    }
    if (timestamp != 0 && timestamp < lastSyncTime) {
        throw new Exception("Remote timestamp earlier than local timestamp");
    }

    // parse xml   
    Document doc;
    try {
        doc = builder.parse(response.getEntity().getContent());
    } catch (Exception e) {
        throw new Exception("Failed to parse load response from server");
    }

    // if remote version is more up to date
    if (timestamp > lastSyncTime) {
        // if local changes made, merge
        if (unsynchedChanges) {
            // save local tree
            save();

            // save remote tree to temp file
            makeFilePath();
            FileOutputStream fileStream = new FileOutputStream(filePath + MERGE_FILENAME);
            writeDocToStream(doc, fileStream);
            fileStream.close();

            // execute merge command to perform merge
            String commandString = StringUtils.template(mergeCommand, filePath + FILENAME,
                    filePath + MERGE_FILENAME);
            Process proc = Runtime.getRuntime().exec(commandString);
            proc.waitFor();
            proc.destroy();

            if (!mergeConfirmer.confirmMerge()) {
                throw new Exception("Merge aborted");
            }

            // remove temp file
            new File(filePath + MERGE_FILENAME).delete();

            // load the newly merged local tree
            load();
        } else {
            // just load xml from remote
            loadFromDocument(doc);

            // save to file
            save();
        }
    }

    // save back to remote every time, to update remote with new sync timestamp.

    // write xml to byte array
    doc = saveToDocument();
    ByteArrayOutputStream baos = new ByteArrayOutputStream();
    writeDocToStream(doc, baos);
    baos.close();

    // make save request            
    post = new HttpPost(saveUrl);
    post.addHeader("Timestamp", String.valueOf(newTimestamp));
    ByteArrayEntity bare = new ByteArrayEntity(baos.toByteArray());
    bare.setContentType("application/xml");
    post.setEntity(bare);
    response = client.execute(post);
    if (response.getStatusLine().getStatusCode() != 200) {
        throw new Exception("Unexpected save response from server: " + response.getStatusLine().getStatusCode()
                + " " + response.getStatusLine().getReasonPhrase());
    }

    // server should echo back same xml to confirm
    Document echoDoc;
    try {
        echoDoc = builder.parse(response.getEntity().getContent());
    } catch (Exception e) {
        throw new Exception("Failed to parse save response from server");
    }
    if (!nodesEqual(doc, echoDoc)) {
        throw new Exception("Bad save response from server");
    }

    unsynchedChanges = false;
    lastSyncTime = newTimestamp;

    // save config
    saveConfig();
}

From source file:com.nominanuda.web.mvc.Favicon.java

@Override
public HttpResponse handle(HttpRequest request) throws Exception {
    HttpResponse resp = HTTP.createBasicResponse(200);
    ByteArrayEntity e = new ByteArrayEntity(favicon);
    e.setContentType(CT_IMAGE_X_ICON);
    resp.setEntity(e);//  w  ww  . j  a  v a2 s.c  om
    return resp;
}

From source file:org.esigate.http.HttpClientRequestExecutorTest.java

private HttpResponse createMockGzippedResponse(String content) throws IOException {
    ByteArrayOutputStream baos = new ByteArrayOutputStream();
    GZIPOutputStream gzos = new GZIPOutputStream(baos);
    byte[] uncompressedBytes = content.getBytes();
    gzos.write(uncompressedBytes, 0, uncompressedBytes.length);
    gzos.close();//from w  w  w  .  j a v a  2 s.  co  m
    byte[] compressedBytes = baos.toByteArray();
    ByteArrayEntity httpEntity = new ByteArrayEntity(compressedBytes);
    httpEntity.setContentType("text/html; charset=ISO-8859-1");
    httpEntity.setContentEncoding("gzip");
    StatusLine statusLine = new BasicStatusLine(new ProtocolVersion("p", 1, 2), HttpStatus.SC_OK, "OK");
    BasicHttpResponse httpResponse = new BasicHttpResponse(statusLine);
    httpResponse.addHeader("Content-type", "text/html; charset=ISO-8859-1");
    httpResponse.addHeader("Content-encoding", "gzip");
    httpResponse.setEntity(httpEntity);
    return httpResponse;
}

From source file:org.apache.synapse.transport.nhttp.ServerHandler.java

/**
 * Handle  errors while reading or writing to underlying channels
 * @param conn the connection being processed
 * @param e the exception encountered/* ww w  .  j a  va 2 s . c  om*/
 */
public void exception(NHttpServerConnection conn, Exception e) {
    String errMsg = "I/O error : " + e.getMessage();
    if (e instanceof HttpException) {
        if (metrics != null) {
            metrics.incrementFaultsReceiving();
        }

        HttpContext context = conn.getContext();
        HttpRequest request = conn.getHttpRequest();
        ProtocolVersion ver = HttpVersion.HTTP_1_0;
        if (request != null && request.getRequestLine() != null) {
            ver = request.getRequestLine().getProtocolVersion();
        }
        HttpResponse response = responseFactory.newHttpResponse(ver, HttpStatus.SC_BAD_REQUEST, context);

        byte[] msg = EncodingUtils.getAsciiBytes("Malformed HTTP request: " + e.getMessage());
        ByteArrayEntity entity = new ByteArrayEntity(msg);
        entity.setContentType("text/plain; charset=US-ASCII");
        response.setEntity(entity);
        try {
            commitResponseHideExceptions(conn, response);
        } catch (Exception ignore) {
        }
    } else if (e instanceof ConnectionClosedException
            || (e.getMessage() != null && (e.getMessage().contains("Connection reset by peer")
                    || e.getMessage().contains("forcibly closed")))) {
        if (log.isDebugEnabled()) {
            errMsg = "I/O error (Probably the keepalive connection " + "was closed):" + e.getMessage();
            log.debug(errMsg);
        }
        shutdownConnection(conn, true, errMsg);
    } else if (e instanceof IOException && e.getMessage() != null) {
        errMsg = e.getMessage().toLowerCase();
        if (errMsg.indexOf("broken") != -1) {
            log.warn("I/O error (Probably the connection " + "was closed by the remote party):"
                    + e.getMessage());
        } else {
            log.error("I/O error: " + e.getMessage(), e);
        }
        if (metrics != null) {
            metrics.incrementFaultsReceiving();
        }
        shutdownConnection(conn, true, errMsg);
    } else {
        errMsg = "Unexpected I/O error: " + e.getClass().getName();
        log.error(errMsg, e);
        if (metrics != null) {
            metrics.incrementFaultsReceiving();
        }
        shutdownConnection(conn, true, errMsg);
    }
}

From source file:org.coronastreet.gpxconverter.GarminForm.java

public void upload() {
    httpClient = HttpClientBuilder.create().build();
    localContext = new BasicHttpContext();
    cookieStore = new BasicCookieStore();
    localContext.setAttribute(HttpClientContext.COOKIE_STORE, cookieStore);
    //httpClient.getParams().setParameter(ClientPNames.COOKIE_POLICY, CookiePolicy.BROWSER_COMPATIBILITY);

    if (doLogin()) {
        try {/*w w  w .  j a v a2 s.co  m*/
            HttpGet get = new HttpGet("http://connect.garmin.com/transfer/upload#");
            HttpResponse formResponse = httpClient.execute(get, localContext);
            HttpEntity formEntity = formResponse.getEntity();
            EntityUtils.consume(formEntity);

            HttpPost request = new HttpPost(
                    "http://connect.garmin.com/proxy/upload-service-1.1/json/upload/.tcx");
            request.setHeader("Referer",
                    "http://connect.garmin.com/api/upload/widget/manualUpload.faces?uploadServiceVersion=1.1");
            request.setHeader("Accept", "text/html, application/xhtml+xml, */*");
            MultipartEntity entity = new MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE);
            entity.addPart("data",
                    new InputStreamBody(document2InputStream(outDoc), "application/octet-stream", "temp.tcx"));

            // Need to do this bit because without it you can't disable chunked encoding
            ByteArrayOutputStream bArrOS = new ByteArrayOutputStream();
            entity.writeTo(bArrOS);
            bArrOS.flush();
            ByteArrayEntity bArrEntity = new ByteArrayEntity(bArrOS.toByteArray());
            bArrOS.close();

            bArrEntity.setChunked(false);
            bArrEntity.setContentEncoding(entity.getContentEncoding());
            bArrEntity.setContentType(entity.getContentType());

            request.setEntity(bArrEntity);

            HttpResponse response = httpClient.execute(request, localContext);

            if (response.getStatusLine().getStatusCode() != 200) {
                log("Failed to Upload");
                HttpEntity en = response.getEntity();
                if (en != null) {
                    String output = EntityUtils.toString(en);
                    log(output);
                }
            } else {
                HttpEntity ent = response.getEntity();
                if (ent != null) {
                    String output = EntityUtils.toString(ent);
                    output = "[" + output + "]"; //OMG Garmin Sucks at JSON.....
                    JSONObject uploadResponse = new JSONArray(output).getJSONObject(0);
                    JSONObject importResult = uploadResponse.getJSONObject("detailedImportResult");
                    try {
                        int uploadID = importResult.getInt("uploadId");
                        log("Success! UploadID is " + uploadID);
                    } catch (Exception e) {
                        JSONArray failures = (JSONArray) importResult.get("failures");
                        JSONObject failure = (JSONObject) failures.get(0);
                        JSONArray errorMessages = failure.getJSONArray("messages");
                        JSONObject errorMessage = errorMessages.getJSONObject(0);
                        String content = errorMessage.getString("content");
                        log("Upload Failed! Error: " + content);
                    }
                }
            }
            httpClient.close();
        } catch (Exception ex) {
            log("Exception? " + ex.getMessage());
            ex.printStackTrace();
            // handle exception here
        }
    } else {
        log("Failed to upload!");
    }
}

From source file:com.googlecode.jdeltasync.DeltaSyncClient.java

private HttpPost createHttpPost(String uri, String userAgent, String contentType, byte[] data) {
    ByteArrayEntity entity = new ByteArrayEntity(data);
    entity.setContentType(contentType);
    HttpPost post = new HttpPost(uri);
    post.setHeader("User-Agent", userAgent);
    post.setEntity(entity);//from  w ww .ja  v  a  2s  . c  o m
    post.setConfig(this.rcConfig);
    return post;
}

From source file:com.ginstr.android.service.opencellid.upload.data.MeasurementsUploaderService.java

/**
 * uploads measurements data as a batch file
 * @param dbIterator/*from  ww  w . jav  a2 s . c  o  m*/
 * @param latLonFormat
 * @param count
 * @param max
 * @return number of uploaded measurements
 */
private int uploadMeasurementsBatch(MeasurementsDBIterator dbIterator, NumberFormat latLonFormat, int count,
        int max) {
    writeToLog("uploadMeasurementsBatch(" + count + ", " + max + ")");

    try {
        StringBuilder sb = new StringBuilder(
                "lat,lon,mcc,mnc,lac,cellid,signal,measured_at,rating,speed,direction,act\n");

        int thisBatchSize = 0;
        while (thisBatchSize < MEASUREMENTS_BATCH_SIZE && dbIterator.hasNext() && uploadThreadRunning) {
            Measurement meassurement = dbIterator.next();

            sb.append(latLonFormat.format(meassurement.getLat())).append(",");
            sb.append(latLonFormat.format(meassurement.getLon())).append(",");
            sb.append(meassurement.getMcc()).append(",");
            sb.append(meassurement.getMnc()).append(",");
            sb.append(meassurement.getLac()).append(",");
            sb.append(meassurement.getCellid()).append(",");
            sb.append(meassurement.getGsmSignalStrength()).append(",");
            sb.append(meassurement.getTimestamp()).append(",");
            sb.append((meassurement.getAccuracy() != null) ? meassurement.getAccuracy() : "").append(",");
            sb.append((int) meassurement.getSpeed()).append(",");
            sb.append((int) meassurement.getBearing()).append(",");
            sb.append((meassurement.getNetworkType() != null) ? meassurement.getNetworkType() : "");
            sb.append("\n");

            thisBatchSize++;
        }

        HttpResponse response = null;

        writeToLog("Upload request URL: " + httppost.getURI());

        if (uploadThreadRunning) {
            String csv = sb.toString();

            writeToLog("Upload data: " + csv);

            MultipartEntity mpEntity = new MultipartEntity();
            mpEntity.addPart("key", new StringBody(apiKey));
            mpEntity.addPart("appId", new StringBody(appId));
            mpEntity.addPart("datafile", new InputStreamBody(new ByteArrayInputStream(csv.getBytes()),
                    "text/csv", MULTIPART_FILENAME));

            ByteArrayOutputStream bArrOS = new ByteArrayOutputStream();
            // reqEntity is the MultipartEntity instance
            mpEntity.writeTo(bArrOS);
            bArrOS.flush();
            ByteArrayEntity bArrEntity = new ByteArrayEntity(bArrOS.toByteArray());
            bArrOS.close();

            bArrEntity.setChunked(false);
            bArrEntity.setContentEncoding(mpEntity.getContentEncoding());
            bArrEntity.setContentType(mpEntity.getContentType());

            httppost.setEntity(bArrEntity);

            response = httpclient.execute(httppost);
            if (response == null) {
                writeToLog("Upload: null HTTP-response");
                throw new IllegalStateException("no HTTP-response from server");
            }

            HttpEntity resEntity = response.getEntity();

            writeToLog(
                    "Upload: " + response.getStatusLine().getStatusCode() + " - " + response.getStatusLine());

            if (resEntity != null) {
                resEntity.consumeContent();
            }

            if (response.getStatusLine() == null) {
                writeToLog(": " + "null HTTP-status-line");
                throw new IllegalStateException("no HTTP-status returned");
            }

            if (response.getStatusLine().getStatusCode() != 200) {
                throw new IllegalStateException(
                        "HTTP-status code returned : " + response.getStatusLine().getStatusCode());
            }
        }

        return count + thisBatchSize;

    } catch (IOException e) {
        throw new IllegalStateException("IO-Error: " + e.getMessage());
    }
}

From source file:com.ginstr.android.service.opencellid.upload.data.MeasurementsUploaderService.java

/**
 * Used to upload entries from networks table to OCID servers.
 *///  w w w .ja va 2 s . c  o  m
private void uploadNetworks() {
    writeToLog("uploadNetworks()");

    String existingFileName = "uploadNetworks.csv";
    String data = null;

    NetworkDBIterator dbIterator = mDatabase.getNonUploadedNetworks();
    try {
        if (dbIterator.getCount() > 0) {
            //timestamp, mcc, mnc, net (network type), nen (network name)
            StringBuilder sb = new StringBuilder("timestamp,mcc,mnc,net,nen" + ((char) 0xA));

            while (dbIterator.hasNext() && uploadThreadRunning) {
                Network network = dbIterator.next();
                sb.append(network.getTimestamp()).append(",");
                sb.append(network.getMcc()).append(",");
                sb.append(network.getMnc()).append(",");
                sb.append(network.getType()).append(",");
                sb.append(network.getName());
                sb.append(((char) 0xA));
            }

            data = sb.toString();

        } else {
            writeToLog("No networks for upload.");
            return;
        }
    } finally {
        dbIterator.close();
    }

    writeToLog("uploadNetworks(): " + data);

    if (uploadThreadRunning) {

        try {
            httppost = new HttpPost(networksUrl);

            HttpResponse response = null;

            writeToLog("Upload request URL: " + httppost.getURI());

            if (uploadThreadRunning) {
                MultipartEntity mpEntity = new MultipartEntity();
                mpEntity.addPart("apikey", new StringBody(apiKey));
                mpEntity.addPart("datafile", new InputStreamBody(new ByteArrayInputStream(data.getBytes()),
                        "text/csv", existingFileName));

                ByteArrayOutputStream bArrOS = new ByteArrayOutputStream();
                // reqEntity is the MultipartEntity instance
                mpEntity.writeTo(bArrOS);
                bArrOS.flush();
                ByteArrayEntity bArrEntity = new ByteArrayEntity(bArrOS.toByteArray());
                bArrOS.close();

                bArrEntity.setChunked(false);
                bArrEntity.setContentEncoding(mpEntity.getContentEncoding());
                bArrEntity.setContentType(mpEntity.getContentType());

                httppost.setEntity(bArrEntity);

                response = httpclient.execute(httppost);
                if (response == null) {
                    writeToLog("Upload: null HTTP-response");
                    throw new IllegalStateException("no HTTP-response from server");
                }

                HttpEntity resEntity = response.getEntity();

                writeToLog("Response: " + response.getStatusLine().getStatusCode() + " - "
                        + response.getStatusLine());

                if (resEntity != null) {
                    writeToLog("Response content: " + EntityUtils.toString(resEntity));
                    resEntity.consumeContent();
                }
            }

            if (uploadThreadRunning) {
                if (response == null) {
                    writeToLog(": " + "null response");

                    throw new IllegalStateException("no response");
                }
                if (response.getStatusLine() == null) {
                    writeToLog(": " + "null HTTP-status-line");

                    throw new IllegalStateException("no HTTP-status returned");
                }
                if (response.getStatusLine().getStatusCode() == 200) {
                    mDatabase.setAllNetworksUploaded();
                } else if (response.getStatusLine().getStatusCode() != 200) {
                    throw new IllegalStateException(
                            response.getStatusLine().getStatusCode() + " HTTP-status returned");
                }
            }

        } catch (Exception e) {
            // httppost cancellation throws exceptions
            if (uploadThreadRunning) {
                writeExceptionToLog(e);
            }
        }
    }
}