List of usage examples for org.apache.http.entity ByteArrayEntity setContentType
public void setContentType(Header header)
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); } } } }