HttpUrlconnection的post请求

由于HttpClient已经不能用了,这里说一下HttpURLConnection的post请求方法,将post请求的参数通过Gson转化为string。文章参考了其他网友的文档。
如下所示:
 
OrderModel.GoodsListBean goodsListBean = new OrderModel.GoodsListBean();
List<OrderModel.GoodsListBean> goodsList= new ArrayList<>() ;
goodsListBean. id = id ; goodsListBean. goodsId = goodsId ;
goodsListBean. price = price ; goodsList.add(goodsListBean) ;
 
 
OrderModel orderModle = new OrderModel() ; orderModle. userId = userId ; orderModle. goodsList = goodsList ;
String json=new Gson().toJson(orderModle)

String path="www.baidu.com";
然后执行request JsonPost(path,json);

//发送JSON字符串 如果成功则返回成功标识。
    public static String request JsonPost(String urlPath, String Json) {
        String result = "";
        BufferedReader reader = null;
        try {
            URL url = new URL(urlPath);
            HttpURLConnection conn = (HttpURLConnection) url.openConnection();
            conn.setRequestMethod( "POST");
            conn.setDoOutput( true);
            conn.setDoInput( true);
            conn.setUseCaches( false);
            conn.setRequestProperty( "Connection", "Keep-Alive");
            conn.setRequestProperty( "Charset", "UTF-8");
            // 设置文件类型:
            conn.setRequestProperty( "Content-Type", "application/json; charset=UTF-8");
            // 设置接收类型否则返回415错误
            //conn.setRequestProperty("accept","*/*")此处为暴力方法设置接受所有类型,以此来防范返回415;
          conn.setRequestProperty( "accept", "application/json");
            // 往服务器里面发送数据
            if (Json != null && !TextUtils.isEmpty(Json)) {
                byte[] writebytes = Json.getBytes();
                // 设置文件长度
                conn.setRequestProperty( "Content-Length", String.valueOf(writebytes.length));
                OutputStream outwritestream = conn.getOutputStream();
                outwritestream.write(Json.getBytes());
                outwritestream.flush();
                outwritestream.close();
                Log.d( "hlhupload", "doJsonPost: conn"+conn.getResponseCode());
            }
            if (conn.getResponseCode() == 200) {
                reader = new BufferedReader(
                        new InputStreamReader(conn.getInputStream()));
                result = reader.readLine();
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            if (reader != null) {
                try {
                    reader.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
        return result;
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值