-
Notifications
You must be signed in to change notification settings - Fork 5
Expand file tree
/
Copy pathHttpRequestBody.java
More file actions
80 lines (68 loc) · 3.35 KB
/
HttpRequestBody.java
File metadata and controls
80 lines (68 loc) · 3.35 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
/****************************************************************************/
/* File: HttpRequestBody.java */
/* Author: F. Georges - fgeorges.org */
/* Date: 2009-02-02 */
/* Tags: */
/* Copyright (c) 2009 Florent Georges (see end of file.) */
/* ------------------------------------------------------------------------ */
package org.expath.httpclient;
import java.io.OutputStream;
import org.expath.tools.model.Element;
/**
* The body of an HTTP request.
*
* The body of a multipart request is a composite of several bodies.
*
* A request body encapsulates the NodeInfo of http:body (or http:multipart.)
* This element won't change during the extension execution anyway. The
* idea is to be able to serialize it only when we need to, directly to the
* connection output stream (so avoiding to parse it to an intermediary format.)
*
* @author Florent Georges
*/
public abstract class HttpRequestBody
{
public abstract void serialize(OutputStream out)
throws HttpClientException;
public abstract void setHeaders(HeaderSet headers)
throws HttpClientException;
public abstract boolean isMultipart();
public HttpRequestBody(Element elem)
throws HttpClientException
{
myElem = elem;
myContentType = myElem.getAttribute("media-type");
if ( myContentType == null ) {
throw new HttpClientException("@media-type is not on the body or multipart element");
}
}
public String getContentType()
{
return myContentType;
}
protected Element getBodyElement()
{
return myElem;
}
private Element myElem;
private String myContentType;
}
/* ------------------------------------------------------------------------ */
/* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS COMMENT. */
/* */
/* The contents of this file are subject to the Mozilla Public License */
/* Version 1.0 (the "License"); you may not use this file except in */
/* compliance with the License. You may obtain a copy of the License at */
/* http://www.mozilla.org/MPL/. */
/* */
/* Software distributed under the License is distributed on an "AS IS" */
/* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See */
/* the License for the specific language governing rights and limitations */
/* under the License. */
/* */
/* The Original Code is: all this file. */
/* */
/* The Initial Developer of the Original Code is Florent Georges. */
/* */
/* Contributor(s): none. */
/* ------------------------------------------------------------------------ */