2 u013107014 u013107014 于 2014.12.12 15:39 提问

java HttpClient 请求乱码

java HttpClient 4.3.6的jar包
为什么我get post 请求中文乱码
还有怎么请求的时候怎么带参数,我这样写有什么问题没有,现在的情况就是乱码
public static void get() {
try {
CloseableHttpClient httpClient = HttpClients.createDefault();
HttpGet httpget = new HttpGet("http://api.a.7xz.com/v140/ceshi");
httpget.addHeader(new BasicHeader("npi", "3"));
// httpget.addHeader("", "");
CloseableHttpResponse httpReponse = httpClient.execute(httpget);
try {

            System.out.println(httpReponse.getStatusLine());
            HttpEntity entity = httpReponse.getEntity();

            System.out.println(EntityUtils.toString(entity));
        } finally {
            httpReponse.close();
        }

    } catch (Exception e) {
        e.printStackTrace();
    }
}

public static void post() {
    try {
        CloseableHttpClient httpClient = HttpClients.createDefault();
        HttpPost httpPost = new HttpPost("http://api.a.7xz.com/v140/ceshi");

        List<BasicNameValuePair> Listnvps = new ArrayList();
        Listnvps.add(new BasicNameValuePair("npi", "3"));

        httpPost.setEntity(new UrlEncodedFormEntity(Listnvps, "UTF-8"));
        CloseableHttpResponse httppHttpResponse2 = httpClient
                .execute(httpPost);

        try {
            System.out.println(httppHttpResponse2.getStatusLine());
            System.out.println(EntityUtils.toString(httppHttpResponse2
                    .getEntity()));

        } finally {
            httppHttpResponse2.close();
        }
        httpClient.close();

    } catch (Exception e) {
        e.printStackTrace();
    }
}

5个回答

save4me
save4me   Ds   Rxr 2014.12.12 15:58

String strResult = EntityUtils.toString(httpResponse.getEntity(),"UTF-8");
或者把UTF-8改成相应的编码。

u013107014
u013107014 试过了 不行 能不能贴个完整的代码 出来啊 get 获取 post的都行
接近 3 年之前 回复
bdmh
bdmh   Ds   Rxr 2014.12.12 16:38

带参数就是拼接在url后面,http://api.a.7xz.com/v140/ceshi?a=11&b=22
乱码,估计还是编码没对应

save4me
save4me   Ds   Rxr 2014.12.15 11:08

导入HttpClient 4.3.6的jar包,用你的代码测试了。
你说的是{"yxxfGameName":"","yxxfId":"","yxxfTime":"","yxxfFname":"","yxxfGameSize":"","gid":"","yxxfDownLoadUrl":"","xyceXz":"","yxxfPicUrl":"","flagText":"\u4eca\u65e5\u6d4b\u8bd5","flag":1}中\u4eca\u65e5\u6d4b\u8bd5这种乱码吗?这不是乱码,这是编码了而已。或者你截图看看什么样的乱码。

u013107014
u013107014 就是这样的问题 一直不知道怎么解决
接近 3 年之前 回复
u013107014
u013107014 就是这样的问题 一直不知道怎么解决
接近 3 年之前 回复
u013107014
u013107014 编码有问题的话 这个问题怎么解决啊
接近 3 年之前 回复
u013107014
u013107014 照你这样说 这边吗 怎么解决啊
接近 3 年之前 回复
u013107014
u013107014 照你这样说 这边吗 怎么解决啊
接近 3 年之前 回复
save4me
save4me   Ds   Rxr 2014.12.18 09:39

上面的答案有帮助吗?如果还有问题,请提出来,如果对答案满意,请顶一下,并标记为采纳答案,谢谢!

testcs_dn
testcs_dn   Rxr 2015.01.25 18:09

根据httpReponse 的编码解码得到的内容。

Csdn user default icon
上传中...
上传图片
插入图片