List of usage examples for org.apache.commons.httpclient.methods.multipart FilePart FilePart
public FilePart(String paramString, PartSource paramPartSource)
From source file:org.apache.camel.component.jetty.MultiPartFormWithCustomFilterTest.java
@Test public void testSendMultiPartFormOverrideEnableMultpartFilterFalse() throws Exception { HttpClient httpclient = new HttpClient(); File file = new File("src/main/resources/META-INF/NOTICE.txt"); PostMethod httppost = new PostMethod("http://localhost:" + getPort() + "/test2"); Part[] parts = { new StringPart("comment", "A binary file of some kind"), new FilePart(file.getName(), file) }; MultipartRequestEntity reqEntity = new MultipartRequestEntity(parts, httppost.getParams()); httppost.setRequestEntity(reqEntity); int status = httpclient.executeMethod(httppost); assertEquals("Get a wrong response status", 200, status); assertNotNull("Did not use custom multipart filter", httppost.getResponseHeader("MyMultipartFilter")); }
From source file:org.apache.servicemix.http.HttpSpringTest.java
public void testMimeWithHttpClient() throws Exception { File f = new File(getClass().getResource("servicemix.jpg").getFile()); PostMethod filePost = new PostMethod("http://localhost:18192/Service/"); Part[] parts = { new StringPart("request", "<dummy/>"), new FilePart(f.getName(), f) }; RequestEntity entity = new MultipartRequestEntity(parts, filePost.getParams()); ByteArrayOutputStream baos = new ByteArrayOutputStream(); entity.writeRequest(baos);/*from ww w . ja v a 2 s .com*/ logger.info(baos); filePost.setRequestEntity(entity); HttpClient client = new HttpClient(); int status = client.executeMethod(filePost); assertEquals(200, status); filePost.releaseConnection(); }
From source file:org.apache.sling.commons.testing.integration.SlingIntegrationTestClient.java
/** Create a node under given path, using a POST to Sling * @param url under which node is created * @param multiPart if true, does a multipart POST * @param localFile file to upload/*from w w w . j a va 2s . co m*/ * @param fieldName name of the file field * @param typeHint typeHint of the file field * @return the URL that Sling provides to display the node */ public String createNode(String url, NameValuePairList clientNodeProperties, Map<String, String> requestHeaders, boolean multiPart, File localFile, String fieldName, String typeHint) throws IOException { final PostMethod post = new PostMethod(url); post.setFollowRedirects(false); // create a private copy of the properties to not tamper with // the properties of the client NameValuePairList nodeProperties = new NameValuePairList(clientNodeProperties); // add sling specific properties nodeProperties.prependIfNew(":redirect", "*"); nodeProperties.prependIfNew(":displayExtension", ""); nodeProperties.prependIfNew(":status", "browser"); // add fake property - otherwise the node is not created if (clientNodeProperties == null) { nodeProperties.add("jcr:created", ""); } // force form encoding to UTF-8, which is what we use to convert the // string parts into stream data nodeProperties.addOrReplace("_charset_", "UTF-8"); if (nodeProperties.size() > 0) { if (multiPart) { final List<Part> partList = new ArrayList<Part>(); for (NameValuePair e : nodeProperties) { if (e.getValue() != null) { partList.add(new StringPart(e.getName(), e.getValue(), "UTF-8")); } } if (localFile != null) { partList.add(new FilePart(fieldName, localFile)); if (typeHint != null) { partList.add(new StringPart(fieldName + "@TypeHint", typeHint)); } } final Part[] parts = partList.toArray(new Part[partList.size()]); post.setRequestEntity(new MultipartRequestEntity(parts, post.getParams())); } else { post.getParams().setContentCharset("UTF-8"); for (NameValuePair e : nodeProperties) { post.addParameter(e.getName(), e.getValue()); } } } if (requestHeaders != null) { for (Map.Entry<String, String> e : requestHeaders.entrySet()) { post.addRequestHeader(e.getKey(), e.getValue()); } } final int expected = 302; final int status = httpClient.executeMethod(post); if (status != expected) { throw new HttpStatusCodeException(expected, status, "POST", url, HttpTestBase.getResponseBodyAsStream(post, 0)); } String location = post.getResponseHeader("Location").getValue(); post.releaseConnection(); // simple check if host is missing if (!location.startsWith("http://")) { String host = HttpTestBase.HTTP_BASE_URL; int idx = host.indexOf('/', 8); if (idx > 0) { host = host.substring(0, idx); } location = host + location; } return location; }
From source file:org.apache.sling.commons.testing.integration.SlingIntegrationTestClient.java
/** Upload to an file node structure, see SLING-168 */ public void uploadToFileNode(String url, File localFile, String fieldName, String typeHint) throws IOException { final Part[] parts = new Part[typeHint == null ? 1 : 2]; parts[0] = new FilePart(fieldName, localFile); if (typeHint != null) { parts[1] = new StringPart(fieldName + "@TypeHint", typeHint); }//from w ww . ja v a2 s . com final PostMethod post = new PostMethod(url); post.setFollowRedirects(false); post.setRequestEntity(new MultipartRequestEntity(parts, post.getParams())); final int status = httpClient.executeMethod(post); final int expected = 200; if (status != expected) { throw new HttpStatusCodeException(expected, status, "POST", HttpTestBase.getResponseBodyAsStream(post, 0)); } }
From source file:org.apache.sling.commons.testing.integration.SlingIntegrationTestClient.java
/** Upload multiple files to file node structures */ public void uploadToFileNodes(String url, File[] localFiles, String[] fieldNames, String[] typeHints) throws IOException { List<Part> partsList = new ArrayList<Part>(); for (int i = 0; i < localFiles.length; i++) { Part filePart = new FilePart(fieldNames[i], localFiles[i]); partsList.add(filePart);//from www. j a v a 2 s.co m if (typeHints != null) { Part typeHintPart = new StringPart(fieldNames[i] + "@TypeHint", typeHints[i]); partsList.add(typeHintPart); } } final Part[] parts = partsList.toArray(new Part[partsList.size()]); final PostMethod post = new PostMethod(url); post.setFollowRedirects(false); post.setRequestEntity(new MultipartRequestEntity(parts, post.getParams())); final int expected = 200; final int status = httpClient.executeMethod(post); if (status != expected) { throw new HttpStatusCodeException(expected, status, "POST", HttpTestBase.getResponseBodyAsStream(post, 0)); } }
From source file:org.apache.sling.ide.impl.resource.transport.UpdateContentCommand.java
@Override public Result<Void> execute() { PostMethod post = new PostMethod(getPath()); try {//from w w w .j ava 2 s . co m List<Part> parts = new ArrayList<>(); for (Map.Entry<String, Object> property : properties.entrySet()) { if (ProtectedNodes.exists(property.getKey())) { continue; } Object propValue = property.getValue(); if (propValue instanceof String) { parts.add(new StringPart(property.getKey(), (String) propValue)); } else if (property != null) { // TODO handle multi-valued properties System.err.println("Unable to handle property " + property.getKey() + " of type " + property.getValue().getClass()); } } File f = new File(fileInfo.getLocation()); if (f.isFile()) { parts.add(new FilePart(fileInfo.getName(), f)); } post.setRequestEntity( new MultipartRequestEntity(parts.toArray(new Part[parts.size()]), post.getParams())); httpClient.getState().setCredentials(AuthScope.ANY, new UsernamePasswordCredentials(repositoryInfo.getUsername(), repositoryInfo.getPassword())); httpClient.getParams().setAuthenticationPreemptive(true); int responseStatus = httpClient.executeMethod(post); return resultForResponseStatus(responseStatus); } catch (Exception e) { return AbstractResult.failure(new RepositoryException(e)); } finally { post.releaseConnection(); } }
From source file:org.apache.sling.ide.osgi.impl.HttpOsgiClient.java
@Override public void installBundle(InputStream in, String fileName) throws OsgiClientException { if (in == null) { throw new IllegalArgumentException("in may not be null"); }//from w w w .ja v a 2 s . co m if (fileName == null) { throw new IllegalArgumentException("fileName may not be null"); } // append pseudo path after root URL to not get redirected for nothing final PostMethod filePost = new PostMethod(repositoryInfo.appendPath("system/console/install")); try { // set referrer filePost.setRequestHeader("referer", "about:blank"); List<Part> partList = new ArrayList<>(); partList.add(new StringPart("action", "install")); partList.add(new StringPart("_noredir_", "_noredir_")); ByteArrayOutputStream baos = new ByteArrayOutputStream(); IOUtils.copy(in, baos); PartSource partSource = new ByteArrayPartSource(fileName, baos.toByteArray()); partList.add(new FilePart("bundlefile", partSource)); partList.add(new StringPart("bundlestart", "start")); Part[] parts = partList.toArray(new Part[partList.size()]); filePost.setRequestEntity(new MultipartRequestEntity(parts, filePost.getParams())); int status = getHttpClient().executeMethod(filePost); if (status != 200) { throw new OsgiClientException("Method execution returned status " + status); } } catch (IOException e) { throw new OsgiClientException(e); } finally { filePost.releaseConnection(); } }
From source file:org.apache.sling.ide.osgi.impl.HttpOsgiClient.java
@Override public void installLocalBundle(final InputStream jarredBundle, String sourceLocation) throws OsgiClientException { if (jarredBundle == null) { throw new IllegalArgumentException("jarredBundle may not be null"); }//from w w w . java 2 s .co m new LocalBundleInstaller(getHttpClient(), repositoryInfo) { @Override void configureRequest(PostMethod method) throws IOException { Part[] parts = new Part[] { new FilePart("bundle", new ByteArrayPartSource("bundle.jar", IOUtils.toByteArray(jarredBundle))) }; method.setRequestEntity(new MultipartRequestEntity(parts, method.getParams())); } }.installBundle(); }
From source file:org.apache.sling.maven.bundlesupport.AbstractBundleDeployMojo.java
private void post(String targetURL, File file) throws MojoExecutionException { PostMethod filePost = new PostMethod(targetURL); try {//from w w w .j a v a 2s. co m Part[] parts = { new FilePart(file.getName(), new FilePartSource(file.getName(), file)), new StringPart("_noredir_", "_noredir_") }; filePost.setRequestEntity(new MultipartRequestEntity(parts, filePost.getParams())); HttpClient client = new HttpClient(); client.getHttpConnectionManager().getParams().setConnectionTimeout(5000); int status = client.executeMethod(filePost); if (status == HttpStatus.SC_OK) { getLog().info("Bundle deployed"); } else { String msg = "Deployment failed, cause: " + HttpStatus.getStatusText(status); if (failOnError) { throw new MojoExecutionException(msg); } else { getLog().error(msg); } } } catch (Exception ex) { throw new MojoExecutionException("Deployment on " + targetURL + " failed, cause: " + ex.getMessage(), ex); } finally { filePost.releaseConnection(); } }
From source file:org.apache.sling.maven.bundlesupport.AbstractBundleInstallMojo.java
/** * Install the bundle via POST to the Felix Web Console * @param targetURL the URL to the Felix Web Console Bundles listing * @param file the file to POST/* w w w.ja va 2 s.c o m*/ * @throws MojoExecutionException * @see <a href="http://felix.apache.org/documentation/subprojects/apache-felix-web-console/web-console-restful-api.html#post-requests">Webconsole RESTful API</a> * @see <a href="https://github.com/apache/felix/blob/trunk/webconsole/src/main/java/org/apache/felix/webconsole/internal/core/BundlesServlet.java">BundlesServlet@Github</a> */ protected void postToFelix(String targetURL, File file) throws MojoExecutionException { // append pseudo path after root URL to not get redirected for nothing final PostMethod filePost = new PostMethod(targetURL + "/install"); try { // set referrer filePost.setRequestHeader("referer", "about:blank"); List<Part> partList = new ArrayList<Part>(); partList.add(new StringPart("action", "install")); partList.add(new StringPart("_noredir_", "_noredir_")); partList.add(new FilePart("bundlefile", new FilePartSource(file.getName(), file))); partList.add(new StringPart("bundlestartlevel", bundleStartLevel)); if (bundleStart) { partList.add(new StringPart("bundlestart", "start")); } if (refreshPackages) { partList.add(new StringPart("refreshPackages", "true")); } Part[] parts = partList.toArray(new Part[partList.size()]); filePost.setRequestEntity(new MultipartRequestEntity(parts, filePost.getParams())); int status = getHttpClient().executeMethod(filePost); if (status == HttpStatus.SC_OK) { getLog().info("Bundle installed"); } else { String msg = "Installation failed, cause: " + HttpStatus.getStatusText(status); if (failOnError) { throw new MojoExecutionException(msg); } else { getLog().error(msg); } } } catch (Exception ex) { throw new MojoExecutionException("Installation on " + targetURL + " failed, cause: " + ex.getMessage(), ex); } finally { filePost.releaseConnection(); } }