You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-commits@axis.apache.org by ve...@apache.org on 2018/12/23 18:21:24 UTC
svn commit: r1849657 -
/axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/transport/http/XFormURLEncodedFormatter.java
Author: veithen
Date: Sun Dec 23 18:21:24 2018
New Revision: 1849657
URL: http://svn.apache.org/viewvc?rev=1849657&view=rev
Log:
Implement streaming in XFormURLEncodedFormatter.
Modified:
axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/transport/http/XFormURLEncodedFormatter.java
Modified: axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/transport/http/XFormURLEncodedFormatter.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/transport/http/XFormURLEncodedFormatter.java?rev=1849657&r1=1849656&r2=1849657&view=diff
==============================================================================
--- axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/transport/http/XFormURLEncodedFormatter.java (original)
+++ axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/transport/http/XFormURLEncodedFormatter.java Sun Dec 23 18:21:24 2018
@@ -29,8 +29,10 @@ import org.apache.axis2.transport.Messag
import org.apache.axis2.transport.http.util.URLTemplatingUtil;
import org.apache.axis2.util.JavaUtils;
+import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.OutputStream;
+import java.io.OutputStreamWriter;
import java.net.URL;
import java.util.Iterator;
@@ -40,34 +42,33 @@ import java.util.Iterator;
public class XFormURLEncodedFormatter implements MessageFormatter {
public byte[] getBytes(MessageContext messageContext, OMOutputFormat format) throws AxisFault {
-
- OMElement omElement = messageContext.getEnvelope().getBody().getFirstElement();
-
- if (omElement != null) {
- Iterator it = omElement.getChildElements();
- String paraString = "";
-
- while (it.hasNext()) {
- OMElement ele1 = (OMElement) it.next();
- String parameter;
-
- parameter = ele1.getLocalName() + "=" + ele1.getText();
- paraString = "".equals(paraString) ? parameter : (paraString + "&" + parameter);
- }
-
- return paraString.getBytes();
- }
-
- return new byte[0];
+ ByteArrayOutputStream baos = new ByteArrayOutputStream();
+ writeTo(messageContext, format, baos, true);
+ return baos.toByteArray();
}
public void writeTo(MessageContext messageContext, OMOutputFormat format,
OutputStream outputStream, boolean preserve) throws AxisFault {
-
- try {
- outputStream.write(getBytes(messageContext, format));
- } catch (IOException e) {
- throw new AxisFault("An error occured while writing the request");
+ OMElement omElement = messageContext.getEnvelope().getBody().getFirstElement();
+ if (omElement != null) {
+ try {
+ OutputStreamWriter writer = new OutputStreamWriter(outputStream, "utf-8");
+ boolean first = true;
+ for (Iterator<OMElement> it = omElement.getChildElements(); it.hasNext(); ) {
+ OMElement child = it.next();
+ if (first) {
+ first = false;
+ } else {
+ writer.write('&');
+ }
+ writer.write(child.getLocalName());
+ writer.write('=');
+ child.writeTextTo(writer, preserve);
+ }
+ writer.flush();
+ } catch (IOException e) {
+ throw new AxisFault("An error occured while writing the request");
+ }
}
}