diff --git a/hutool-core/src/main/java/cn/hutool/core/io/resource/CharSequenceResource.java b/hutool-core/src/main/java/cn/hutool/core/io/resource/CharSequenceResource.java index d6dba9302..5c083ae18 100644 --- a/hutool-core/src/main/java/cn/hutool/core/io/resource/CharSequenceResource.java +++ b/hutool-core/src/main/java/cn/hutool/core/io/resource/CharSequenceResource.java @@ -85,7 +85,7 @@ public class CharSequenceResource implements Resource, Serializable { @Override public byte[] readBytes() throws IORuntimeException { - return this.data.toString().getBytes(this.charset); + return StrUtil.bytes(this.data, this.charset); } } diff --git a/hutool-http/src/main/java/cn/hutool/http/client/body/StringBody.java b/hutool-http/src/main/java/cn/hutool/http/client/body/StringBody.java new file mode 100755 index 000000000..06dae7ff8 --- /dev/null +++ b/hutool-http/src/main/java/cn/hutool/http/client/body/StringBody.java @@ -0,0 +1,35 @@ +package cn.hutool.http.client.body; + +import cn.hutool.core.io.resource.StringResource; +import cn.hutool.http.HttpUtil; + +import java.nio.charset.Charset; + +/** + * String类型的body,一般用于Rest请求的请求体,如JSON或XML + * + * @author looly + */ +public class StringBody extends ResourceBody { + + /** + * 构造,根据body内容类型,自动识别Content-Type + * + * @param body Body内容 + * @param charset 自定义编码 + */ + public StringBody(final String body, final Charset charset) { + this(body, HttpUtil.getContentTypeByRequestBody(body), charset); + } + + /** + * 构造 + * + * @param body Body内容 + * @param contentType 自定义Content-Type + * @param charset 自定义编码 + */ + public StringBody(final String body, final String contentType, final Charset charset) { + super(new StringResource(body, contentType, charset)); + } +}