Example usage for org.apache.commons.httpclient HeaderElement getParameters

List of usage examples for org.apache.commons.httpclient HeaderElement getParameters

Introduction

In this page you can find the example usage for org.apache.commons.httpclient HeaderElement getParameters.

Prototype

public NameValuePair[] getParameters() 

Source Link

Usage

From source file:com.esri.gpt.agp.client.AgpDPart.java

/**
 * Execute the write./*from w w w. j a  va  2s . c  om*/
 * @param out the output stream
 * @throws Exception if an exception occurs
 */
private void execSend(final OutputStream destinationStream) throws Exception {
    AgpConnection srcCon = this.sourceConnection;
    String sUrl = this.sourceUrl;
    String rqType = "application/x-www-form-urlencoded";
    StringBuilder rqParams = new StringBuilder();
    srcCon.appendToken(rqParams);
    AgpProperties hdr = srcCon.makeRequestHeaderProperties();
    AgpClient client = srcCon.ensureClient();
    StringProvider provider = new StringProvider(rqParams.toString(), rqType);

    this.step = "connectingToSource";
    try {
        client.executeRequest(sUrl, hdr, provider, new ContentHandler() {

            @Override
            public boolean onBeforeReadResponse(HttpClientRequest request) {
                AgpDPart oThis = AgpDPart.this;
                ResponseInfo info = request.getResponseInfo();
                Header h;
                String s;
                s = "responseContentLength " + info.getContentLength();
                AgpDPart.LOGGER.finest("onBeforeReadResponse " + s);

                h = info.getResponseHeader("Content-Type");
                if (h != null) {
                    HeaderElement elements[] = h.getElements();
                    // Expect only one header element to be there, no more, no less
                    if (elements.length == 1) {
                        String sContentType = elements[0].getName();
                        String sCharset = null;
                        NameValuePair nvp = elements[0].getParameterByName("charset");
                        if (nvp != null) {
                            sCharset = nvp.getValue();
                        }
                        oThis.setContentType(sContentType);
                        oThis.setCharset(sCharset);
                        s = "contentType=" + sContentType + " charset=" + sCharset;
                        AgpDPart.LOGGER.finest("onBeforeReadResponse " + s);
                    }
                }

                h = info.getResponseHeader("Content-Disposition");
                if (h != null) {
                    HeaderElement elements[] = h.getElements();
                    for (HeaderElement element : elements) {
                        NameValuePair[] params = element.getParameters();
                        for (NameValuePair param : params) {
                            s = "Content-Disposition param " + param.getName() + "=" + param.getValue();
                            AgpDPart.LOGGER.finest("onBeforeReadResponse " + s);
                            if (param.getName().equals("filename")) {
                                String sValue = param.getValue();
                                if (sValue != null) {
                                    oThis.sourceFileName = sValue;
                                    oThis.setFileName(sValue);
                                    s = "found Content-Disposition filename " + oThis.sourceFileName;
                                    AgpDPart.LOGGER.finest("onBeforeReadResponse " + s);
                                }
                            } else if (param.getName().equals("size")) {
                                String sValue = param.getValue();
                                if (sValue != null) {
                                    long nSize = -2;
                                    try {
                                        nSize = Long.valueOf(param.getValue());
                                        oThis.sourceLength = nSize;
                                        s = "found Content-Disposition size " + nSize;
                                        AgpDPart.LOGGER.finest("onBeforeReadResponse " + s);
                                    } catch (NumberFormatException nfe) {
                                        nSize = -2;
                                    }
                                }
                            }
                        }
                    }
                }
                return true;
            }

            @Override
            public void readResponse(HttpClientRequest request, InputStream responseStream) throws IOException {
                AgpDPart.LOGGER.finest("readResponse, streaming data...");
                AgpDPart oThis = AgpDPart.this;
                oThis.step = "streamingToDestination";
                oThis.sendStart(destinationStream);
                oThis.sendDispositionHeader(destinationStream);
                oThis.sendContentTypeHeader(destinationStream);
                oThis.sendTransferEncodingHeader(destinationStream);
                oThis.sendEndOfHeader(destinationStream);
                long nTotal = oThis.streamData(responseStream, destinationStream);
                AgpDPart.LOGGER.finest("readResponse, bytes transferred=" + nTotal);
                oThis.sendEnd(destinationStream);
            }
        });

    } catch (IOException e) {
        boolean bThrow = true;
        if (this.step.equals("connectingToSource")) {
            String s = this.getName();
            if ((s != null) && s.equals("metadata")) {
                s = e.toString();
                // this is what happens when there is no metadata
                // 1.6.02         HTTP Request failed: HTTP/1.1 500 Internal Server Error
                // AGOL 4/13/2012 HTTP Request failed: HTTP/1.1 400 Bad Request
                if (s.contains("HTTP Request failed")) {
                    AgpDPart.LOGGER.finest("No metadata found " + s);
                    bThrow = false;
                }
            }
        } else {
            throw e;
        }
        if (bThrow)
            throw e;
    }
}

From source file:org.apache.axis2.transport.http.AbstractHTTPSender.java

private String processCookieHeader(HeaderElement element) {
    String cookie = element.getName() + "=" + element.getValue();
    NameValuePair[] parameters = element.getParameters();
    for (int j = 0; parameters != null && j < parameters.length; j++) {
        NameValuePair parameter = parameters[j];
        cookie = cookie + "; " + parameter.getName() + "=" + parameter.getValue();
    }//w w  w.  j a  va2s.c  om
    return cookie;
}

From source file:org.apache.axis2.transport.http.AbstractHTTPSender.java

private String processCookieHeaders(Header[] headers) {
    String cookie = "";
    for (Header header : headers) {
        if (!cookie.equals("")) {
            cookie = cookie + ";";
        }/*w  ww . ja va  2 s  .  c om*/
        HeaderElement[] elements = header.getElements();
        for (HeaderElement element : elements) {
            cookie = cookie + element.getName() + "=" + element.getValue();
            NameValuePair[] parameters = element.getParameters();
            for (NameValuePair parameter : parameters) {
                cookie = cookie + "; " + parameter.getName() + "=" + parameter.getValue();
            }
        }
    }
    return cookie;
}