Skip to content

Commit

Permalink
support openapi, for issue alibaba#1256 alibaba#1309
Browse files Browse the repository at this point in the history
  • Loading branch information
wenshao committed Apr 2, 2023
1 parent fd3c375 commit c048b13
Show file tree
Hide file tree
Showing 4 changed files with 24 additions and 7 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -123,6 +123,10 @@ protected void writeInternal(Object object, HttpOutputMessage outputMessage) thr
byte[] strBytes = ((String) object).getBytes(config.getCharset());
contentLength = strBytes.length;
outputMessage.getBody().write(strBytes, 0, strBytes.length);
} else if (object instanceof byte[] && JSON.isValid((byte[]) object)) {
byte[] strBytes = (byte[]) object;
contentLength = strBytes.length;
outputMessage.getBody().write(strBytes, 0, strBytes.length);
} else {
contentLength = JSON.writeTo(
outputMessage.getBody(),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -123,6 +123,9 @@ protected void writeInternal(Object object, HttpOutputMessage outputMessage) thr
byte[] strBytes = ((String) object).getBytes(config.getCharset());
contentLength = strBytes.length;
outputMessage.getBody().write(strBytes, 0, strBytes.length);
} else if (object instanceof byte[] && JSON.isValid((byte[]) object)) {
byte[] strBytes = (byte[]) object;
contentLength = strBytes.length;
} else {
contentLength = JSON.writeTo(
outputMessage.getBody(),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@
import com.alibaba.fastjson.serializer.SerializeFilter;
import com.alibaba.fastjson.serializer.SerializerFeature;
import com.alibaba.fastjson.util.IOUtils;
import com.alibaba.fastjson2.JSONWriter;

import java.nio.charset.Charset;
import java.util.Map;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -136,14 +136,25 @@ protected void writeInternal(
try (ByteArrayOutputStream baos = new ByteArrayOutputStream()) {
HttpHeaders headers = outputMessage.getHeaders();

int len = JSON.writeJSONString(
baos, object,
fastJsonConfig.getSerializeFilters(),
fastJsonConfig.getSerializerFeatures()
);
int contentLength;
if (object instanceof String && com.alibaba.fastjson2.JSON.isValidObject((String) object)) {
byte[] strBytes = ((String) object).getBytes(fastJsonConfig.getCharset());
contentLength = strBytes.length;
outputMessage.getBody().write(strBytes, 0, strBytes.length);
} else if (object instanceof byte[] && com.alibaba.fastjson2.JSON.isValid((byte[]) object)) {
byte[] strBytes = (byte[]) object;
contentLength = strBytes.length;
outputMessage.getBody().write(strBytes, 0, strBytes.length);
} else {
contentLength = JSON.writeJSONString(
baos, object,
fastJsonConfig.getSerializeFilters(),
fastJsonConfig.getSerializerFeatures()
);
}

if (headers.getContentLength() < 0 && fastJsonConfig.isWriteContentLength()) {
headers.setContentLength(len);
headers.setContentLength(contentLength);
}

baos.writeTo(outputMessage.getBody());
Expand Down

0 comments on commit c048b13

Please sign in to comment.