EntityBuilder的几个函数

来源:互联网 发布:python sap 编辑:程序博客网 时间:2024/04/30 15:18

最近做项目用到短信发送http接口,接口要求短信内容编码为GBK,用httpclient4.3,发送的时候总会提示“ERROR&发送内容必须有签名”,将签名放入后依然提示同样内容,于是意识到可能是编码问题,最终问题解决,得到一些经验。

使用httppost,将内容用EntityBuilder将各项参数放入,EntityBuilder有几个函数可用:

setParameters(List<NameValuePair> parameters):放入的参数会默认以URLEncode将各项参数编码为setContentEncoding(String contentEncoding)中指定的编码方式,中文字符等会变成%xx%xx(GBK/gb2312一个汉字两个字节),或%xx%xx%xx(UTF-8一个汉字三个字节),接收端需要URLDecoder之后才能使用。

setStream(InputStream stream)与setBinary(byte[] binary)不做处理,如果需要自己指定内容的编码方式,应该用这两个函数。

setText(String text)会按系统默认编码处理,即ISO-8859-1,如果有中文,由于超出编码范围,会出现乱码,调试能发现content中的字节为负数。



0 0