Httpclient_post解析

本文介绍了一个使用Java实现的HTTP客户端POST请求示例,包括如何创建HttpClient对象、构造HttpPost请求、添加请求参数并发送请求获取响应的过程。该示例还展示了如何处理中文参数编码及解析JSON响应。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

protected void getData() {

    // 得到HttpClient对象
    HttpClient client = new DefaultHttpClient();
    // 通过post方式请求
    HttpPost httpPost = new HttpPost(path);
    // 得到集合,添加需要携带的请求参数
    List<BasicNameValuePair> parameters = new ArrayList<BasicNameValuePair>();
    String name = null;
    try {
        //经过编码的汉字  ///%E7%99%BD%E7%BE%8A%E5%BA%A7
                     ///%E7%99%BD%E7%BE%8A%E5%BA%A7
        name = URLEncoder.encode("狮子座", "utf-8");
    } catch (UnsupportedEncodingException e1) {
        // TODO Auto-generated catch block
        e1.printStackTrace();
    }
    parameters.add(new BasicNameValuePair("consName", name));
    parameters.add(new BasicNameValuePair("type", "today"));
    parameters.add(new BasicNameValuePair("key",
            "3ac9f31ff66b9746539472887b3799c3"));

    try {
        // 得到实体对象
        UrlEncodedFormEntity formEntity = new UrlEncodedFormEntity(
                parameters);
        // 设置请求实体
        httpPost.setEntity(formEntity);
        // 连接,得到响应回来的数据
        HttpResponse httpResponse = client.execute(httpPost);
        // 得到状态行,在得到的状态码
        if (httpResponse.getStatusLine().getStatusCode() == 200) {
            // 得到实体
            HttpEntity entity = httpResponse.getEntity();
            // 得到字符串数据
            String data = EntityUtils.toString(entity);
            System.out.println(data);
            // 解析json
            Gson gson = new Gson();
            Bean bean = gson.fromJson(data, Bean.class);
            // 把数据发给主线程
            Message msg = Message.obtain();
            msg.obj = bean;
            handler.sendMessage(msg);

        } else {

            Toast.makeText(MainActivity.this, " 连接错误  ", 1).show();
        }

    } catch (ClientProtocolException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值